diff --git a/client/java/solrj/src/org/apache/solr/client/solrj/request/QueryRequest.java b/client/java/solrj/src/org/apache/solr/client/solrj/request/QueryRequest.java index 9f25d73ba98..2033fed1f2c 100644 --- a/client/java/solrj/src/org/apache/solr/client/solrj/request/QueryRequest.java +++ b/client/java/solrj/src/org/apache/solr/client/solrj/request/QueryRequest.java @@ -81,7 +81,7 @@ public class QueryRequest extends SolrRequest try { long startTime = System.currentTimeMillis(); - QueryResponse res = new QueryResponse( server.request( this ) ); + QueryResponse res = new QueryResponse( server.request( this ), server ); res.setElapsedTime( System.currentTimeMillis()-startTime ); return res; } diff --git a/client/java/solrj/src/org/apache/solr/client/solrj/response/QueryResponse.java b/client/java/solrj/src/org/apache/solr/client/solrj/response/QueryResponse.java index 2149c01dfc7..7fb7b61b5db 100644 --- a/client/java/solrj/src/org/apache/solr/client/solrj/response/QueryResponse.java +++ b/client/java/solrj/src/org/apache/solr/client/solrj/response/QueryResponse.java @@ -56,7 +56,14 @@ public class QueryResponse extends SolrResponseBase // Debug Info private Map _debugMap = null; private Map _explainMap = null; + + // utility variable used for automatic binding -- it should not be serialized + private transient SolrServer solrServer; + public QueryResponse( NamedList res , SolrServer solrServer){ + this(res); + this.solrServer = solrServer; + } public QueryResponse( NamedList res ) { @@ -244,6 +251,12 @@ public class QueryResponse extends SolrResponseBase public List getLimitingFacets() { return _limitingFacets; } + + public List getBeans(Class type){ + return solrServer == null ? + new DocumentObjectBinder().getBeans(type,_results): + solrServer.getBinder().getBeans(type, _results); + } }