If I send a ping request to Solr 4.1 from SolrJ 4.1, it works. I don't have an exact revision number from branch_4x, I don't know how to get it from SolrJ. The 4.1 server is running solr-impl 4.1-SNAPSHOT 1401798M with the patch from SOLR-1972 applied, and it's somewhat newer than SolrJ.

Java code snippets:

private static final String PING_HANDLER = "/admin/ping";

query.setRequestHandler(PING_HANDLER);
response = _querySolr.query(query);


If I use this exact same code to talk to a Solr 3.5.0 server (older version of the SOLR-1972 patch applied) with the ping handler in the "enabled" state, I get the following exception. The /admin/ping handler works in a browser on both Solr versions:

Caused by: org.apache.solr.client.solrj.SolrServerException: Error executing query at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:98)
    at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
    at com.newscom.common.solr.Core.ping(Core.java:396)
    ... 4 more
Caused by: java.lang.RuntimeException: Invalid version (expected 2, but 60) or the data in not in 'javabin' format at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:109) at org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.java:41) at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:384) at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181) at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
    ... 6 more

If I use the XMLResponseParser instead, then I get a different exception:

Caused by: org.apache.solr.common.SolrException: parsing error
at org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:143) at org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:104) at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:384) at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181) at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
    at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
    at com.newscom.common.solr.Core.ping(Core.java:398)
    ... 4 more
Caused by: java.lang.Exception: really needs to be response or result. not:html at org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:134)
    ... 10 more

I'm already dealing with the expected "Service Unavailable" exception, this is something different. Is it going to be possible to make this work? Should I file an issue in Jira? Is the problem in the newer SolrJ or in the older Solr? At this time I do not really need the information in the response, I just need to be able to judge success (Solr is up and working) by nothing being thrown, and be able to look into any exception thrown to see whether I've got a disabled handler or an error condition.

Thanks,
Shawn

Reply via email to