Serdyn du Toit created SOLR-3605:
------------------------------------
Summary: Problem with group paging (or JavaBinCodec conversion
error for the request)
Key: SOLR-3605
URL: https://issues.apache.org/jira/browse/SOLR-3605
Project: Solr
Issue Type: Bug
Components: clients - java, search
Affects Versions: 3.6, 3.5
Environment: Problem first encountered in running Solr 3.5 under
Ubuntu. Now upgraded to Solr 3.6 but the problem is still present.
Reporter: Serdyn du Toit
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]