This is a very strange error. I have another index (nearly identical solrconfig.xml and similar schema) running Solr 4.9.1 on Oracle JDK 8u60 which works perfectly. Those systems are running Ubuntu 14.
Sending to a different index on different servers running under Oracle JDK 7u72 on CentOS 6 (one copy of the index is running 4.7.2 and the other is running 4.9.1), I get an exception. It does appear to at least partially succeed in running the request -- the response is over 5000 lines long, and except for the very end, looks like a good response. This is the (slightly redacted) URL I'm trying -- it is for a monitoring script that pulls all the most recent documents and groups it by provider, with 10 docs for each provider. http://idxb1.REDACTED.com:8981/solr/ncmain/lbcheck?q=*:*&indent=true&rows=1000&fl=did,tag_id,post_date&group=true&group.field=ip&group.limit=10&group.sort=post_date%20desc The "ncmain" core is a core with an empty index that includes a "shards" parameter in solrconfig.xml and a "shards.qt" parameter to send it to the same handler (/lbcheck) where the request was received. If I send the request individually to all the shards, every shard works, but as soon as I send it distributed, I get the following exception. This is on Solr 4.9.1. Solr 4.7.2 is similar, except the error is missing the stacktrace, I only see the "NullPointerException" error with nothing else. java.lang.NullPointerException at org.apache.solr.response.XMLWriter.writeSolrDocument(XMLWriter.java:191) at org.apache.solr.response.TextResponseWriter.writeSolrDocumentList(TextResponseWriter.java:220) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:182) at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186) at org.apache.solr.response.XMLWriter.writeArray(XMLWriter.java:280) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:188) at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186) at org.apache.solr.response.XMLWriter.writeNamedList(XMLWriter.java:234) at org.apache.solr.response.TextResponseWriter.writeVal(TextResponseWriter.java:186) at org.apache.solr.response.XMLWriter.writeResponse(XMLWriter.java:112) at org.apache.solr.response.XMLResponseWriter.write(XMLResponseWriter.java:40) at org.apache.solr.servlet.SolrDispatchFilter.writeResponse(SolrDispatchFilter.java:765) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:426) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:207) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:499) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) at org.eclipse.jetty.server.Server.handle(Server.java:370) at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494) at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971) at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033) at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644) at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82) at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667) at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) at java.lang.Thread.run(Thread.java:745) The same thing happens with the JSON writer, with JSON classes instead of XML. The config difference between the shard cores and the ncmain core is here: http://apaste.info/hnh The "/lbcheck" handler is defined in the included file named lbRequestHandler.xml. Thanks, Shawn