Hi guys,

The following code
server.queryAndStreamResponse(new SolrQuery("*:*"), new
StreamingResponseCallback() {
    public void streamSolrDocument(SolrDocument doc) {
    }
    public void streamDocListInfo(long numFound, long start, Float maxScore) {
    }
});

throws

Caused by: java.lang.ClassCastException: java.util.ArrayList cannot be
cast to java.lang.String
    at 
org.apache.solr.common.util.JavaBinCodec.readOrderedMap(JavaBinCodec.java:124)
    at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:188)
    at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:116)
    at 
org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:205)
    ... 10 more

streamDocListInfo and streamSolrDocument are called as expected but
the exception is thrown after all the results are streamed, when
building the QueryResponse to return (which is not really needed).

I debugged a bit and it fails while unmarshaling:

{
  responseHeader = {
    status = 0,
    QTime = 1716,
    params = {
      q = *:*,
      fl = name,space,wiki,doclocale,
      fq = type:DOCUMENT,
      rows = 100,
      start = 0
    }
  },
  response = {
    numFound=571,
    start=0,
    maxScore = 1.0,
    docs=[]
  },
  --> here it throws an exception because it expects a String key, but
it gets an array..
}

Note that on my project I have two branches

* one using Solr 4.0.0 and Java 1.6
* one using Solr 4.7.0 and Java 1.7

Both produce the same exception. Do you know what could be wrong?

Thanks,
Marius

Reply via email to