Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
3.5, 3.6
-
None
-
Problem first encountered in running Solr 3.5 under Ubuntu. Now upgraded to Solr 3.6 but the problem is still present.
Description
With Solr 3.6 the following Solr request fails:
(using the example configuration)
SolrQuery solrQuery = new SolrQuery();
solrQuery.setQuery("tshirt");
solrQuery.setQueryType("search");
solrQuery.add(GroupParams.GROUP, "true");
solrQuery.add(GroupParams.GROUP_FORMAT, "grouped");
solrQuery.add(GroupParams.GROUP_MAIN, "true");
solrQuery.add(GroupParams.GROUP_FIELD, "manu_exact");
solrQuery.setStart(30);
solrQuery.setRows(30);
org.apache.solr.client.solrj.SolrServerException: Error executing query
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:95) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:311) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
// at com.core.util.integration.solr.dao.SolrUtil.executeQuery(SolrUtil.java:204) ~[classes/:na]
// at com.blapit.integration.v1.deals.restendpoints.endpoints.test.DealsByKeywordSearchEndpointFuncTest.test(DealsByKeywordSearchEndpointFuncTest.java:40) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_147-icedtea]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_147-icedtea]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_147-icedtea]
at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_147-icedtea]
at junit.framework.TestCase.runTest(TestCase.java:168) [junit-4.10.jar:na]
at junit.framework.TestCase.runBare(TestCase.java:134) [junit-4.10.jar:na]
at junit.framework.TestResult$1.protect(TestResult.java:110) [junit-4.10.jar:na]
at junit.framework.TestResult.runProtected(TestResult.java:128) [junit-4.10.jar:na]
at junit.framework.TestResult.run(TestResult.java:113) [junit-4.10.jar:na]
at junit.framework.TestCase.run(TestCase.java:124) [junit-4.10.jar:na]
at junit.framework.TestSuite.runTest(TestSuite.java:243) [junit-4.10.jar:na]
at junit.framework.TestSuite.run(TestSuite.java:238) [junit-4.10.jar:na]
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) [junit-4.10.jar:na]
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) [.cp/:na]
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.util.List
at org.apache.solr.common.util.JavaBinCodec.readSolrDocumentList(JavaBinCodec.java:340) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:207) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readOrderedMap(JavaBinCodec.java:111) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:174) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:102) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.java:41) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:469) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:249) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:89) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
... 22 common frames omitted
If I change the start parameter to something else:
org.apache.solr.client.solrj.SolrServerException: Error executing query
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:95) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:311) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
// at com.core.util.integration.solr.dao.SolrUtil.executeQuery(SolrUtil.java:204) ~[classes/:na]
// at com.blapit.integration.v1.deals.restendpoints.endpoints.test.DealsByKeywordSearchEndpointFuncTest.test(DealsByKeywordSearchEndpointFuncTest.java:40) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_147-icedtea]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_147-icedtea]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_147-icedtea]
at java.lang.reflect.Method.invoke(Method.java:601) ~[na:1.7.0_147-icedtea]
at junit.framework.TestCase.runTest(TestCase.java:168) [junit-4.10.jar:na]
at junit.framework.TestCase.runBare(TestCase.java:134) [junit-4.10.jar:na]
at junit.framework.TestResult$1.protect(TestResult.java:110) [junit-4.10.jar:na]
at junit.framework.TestResult.runProtected(TestResult.java:128) [junit-4.10.jar:na]
at junit.framework.TestResult.run(TestResult.java:113) [junit-4.10.jar:na]
at junit.framework.TestCase.run(TestCase.java:124) [junit-4.10.jar:na]
at junit.framework.TestSuite.runTest(TestSuite.java:243) [junit-4.10.jar:na]
at junit.framework.TestSuite.run(TestSuite.java:238) [junit-4.10.jar:na]
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) [junit-4.10.jar:na]
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) [.cp/:na]
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) [.cp/:na]
Caused by: java.lang.IndexOutOfBoundsException: Index: 16, Size: 14
at java.util.ArrayList.rangeCheck(ArrayList.java:604) ~[na:1.7.0_147-icedtea]
at java.util.ArrayList.get(ArrayList.java:382) ~[na:1.7.0_147-icedtea]
at org.apache.solr.common.util.JavaBinCodec.readExternString(JavaBinCodec.java:708) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:178) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readSolrDocumentList(JavaBinCodec.java:340) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:207) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readOrderedMap(JavaBinCodec.java:111) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.readVal(JavaBinCodec.java:174) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:102) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.java:41) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:469) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:249) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:89) ~[apache-solr-solrj-3.6.0.jar:3.6.0 1310449 - rmuir - 2012-04-06 11:34:08]
... 22 common frames omitted
The following observations might help finding the problem:
1) The query works when not using SolrJ (remember Solr will append &wt=javabin&version=2 to the query sent to Solr) - thereby indicating that this is possibly not a problem with the group functionality itself but with the JavaBinCodec.
2) The responses I get from the server using the JavaBinCodec differs between the requests (even though they all should return zero results) - so there is a difference in the response from a server which can't be parsed. Maybe these differences in the responses received from the server is correct and the error is in the clients JavaBinCodec?
3) Still searching for a keyword but setting the start parameter to zero - the query succeeds.
4) Not searching for a keyword all paging parameters work.
Hope that helps... So iets either in the client's JavaBinCodec, the server's JavaBinCodec, or something in the group functionality itself. And the issue only appears (as indicated in 3 and 4 above) when doing keyword searches for pages that don't start at zero.
Thank you very much for any help. Please let me know if I can assist with anything.