{"number":100,"pull_request":{"number":100,"issue_url":"https://github.com/sunspot/sunspot/issues/100","head":{"repo":{"master_branch":null,"name":"sunspot","created_at":"2010-12-30T10:45:17Z","size":124,"clone_url":"https://github.com/yipdw/sunspot.git","private":false,"updated_at":"2011-10-10T06:57:52Z","watchers":1,"ssh_url":"git@github.com:yipdw/sunspot.git","url":"https://api.github.com/repos/yipdw/sunspot","git_url":"git://github.com/yipdw/sunspot.git","language":"Ruby","fork":true,"svn_url":"https://svn.github.com/yipdw/sunspot","id":1208173,"pushed_at":"2011-10-10T06:57:41Z","open_issues":0,"homepage":"http://outoftime.github.com/sunspot","description":"Solr-powered search for Ruby objects","forks":0,"html_url":"https://github.com/yipdw/sunspot","owner":{"avatar_url":"https://secure.gravatar.com/avatar/1e39068659020a59793626b09ed704ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/yipdw","id":3859,"login":"yipdw"}},"label":"yipdw:postbody-parameters","sha":"7e077fab989ebc3b5809c86639880073aab8f8e1","ref":"postbody-parameters","user":{"avatar_url":"https://secure.gravatar.com/avatar/1e39068659020a59793626b09ed704ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/yipdw","id":3859,"login":"yipdw"}},"merged_by":{"avatar_url":"https://secure.gravatar.com/avatar/5198f305281b34927f936ba77cffcbf6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/nz","id":430,"login":"nz"},"created_at":"2011-10-10T06:59:07Z","changed_files":1,"merged":true,"body":"The version of Jetty bundled with Sunspot (as of this commit) aggregates\r\nquery parameters and POST data when it presents parameters to a webapp.\r\n\r\nWinstone 0.9.10, which otherwise runs Solr well, doesn't do this.\r\nSending POST /select to Winstone yields a response with a 500 status\r\ncode and report errors like this in the log:\r\n\r\n    INFO: [] webapp=/solr path=/select params={} status=500 QTime=1\r\n    Oct 10, 2011 12:31:00 AM org.apache.solr.common.SolrException log\r\n    SEVERE: java.lang.NullPointerException\r\n      at java.io.StringReader.<init>(StringReader.java:33)\r\n      at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:197)\r\n      at org.apache.solr.search.LuceneQParser.parse(LuceneQParserPlugin.java:78)\r\n      at org.apache.solr.search.QParser.getQuery(QParser.java:131)\r\n      at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:89)\r\n      at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:174)\r\n      at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131)\r\n      at org.apache.solr.core.SolrCore.execute(SolrCore.java:1316)\r\n      at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:338)\r\n      at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:241)\r\n      at winstone.FilterConfiguration.execute(FilterConfiguration.java:195)\r\n      at winstone.RequestDispatcher.doFilter(RequestDispatcher.java:368)\r\n      at winstone.RequestDispatcher.forward(RequestDispatcher.java:333)\r\n      at winstone.RequestHandlerThread.processRequest(RequestHandlerThread.java:244)\r\n      at winstone.RequestHandlerThread.run(RequestHandlerThread.java:150)\r\n      at java.lang.Thread.run(Thread.java:680)\r\n\r\nwhich looks like Solr is receiving POST /select with no parameters.\r\n\r\nTo be fair, I think Winstone is actually violating Servlet API v2.4 in\r\nthis case.  Section SRV.4.1 of the API specification states \"Data from\r\nthe query string and the post body are aggregated into the request\r\nparameter set\", which doesn't seem to be happening here.  However, this\r\nfix is not that large, and even saves on some code by saving us the\r\nhassle of having to set the body's content type (RSolr 1.0.2 will do\r\nthat for us when given a post body).","comments":2,"title":"Send search parameters in the body, not the query string.","additions":1,"diff_url":"https://github.com/sunspot/sunspot/pull/100.diff","updated_at":"2011-10-12T16:25:25Z","url":"https://api.github.com/repos/sunspot/sunspot/pulls/100","id":389432,"patch_url":"https://github.com/sunspot/sunspot/pull/100.patch","mergeable":null,"merged_at":"2011-10-12T16:25:25Z","commits":1,"closed_at":"2011-10-12T16:25:25Z","user":{"avatar_url":"https://secure.gravatar.com/avatar/1e39068659020a59793626b09ed704ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/yipdw","id":3859,"login":"yipdw"},"deletions":1,"html_url":"https://github.com/sunspot/sunspot/pull/100","base":{"repo":{"master_branch":null,"name":"sunspot","created_at":"2008-10-13T15:46:40Z","size":1148,"clone_url":"https://github.com/sunspot/sunspot.git","private":false,"updated_at":"2011-10-12T16:25:25Z","watchers":982,"ssh_url":"git@github.com:sunspot/sunspot.git","url":"https://api.github.com/repos/sunspot/sunspot","git_url":"git://github.com/sunspot/sunspot.git","language":"Ruby","fork":false,"svn_url":"https://svn.github.com/sunspot/sunspot","id":62509,"pushed_at":"2011-10-12T16:25:25Z","open_issues":22,"homepage":"http://outoftime.github.com/sunspot","description":"Solr-powered search for Ruby objects","forks":242,"html_url":"https://github.com/sunspot/sunspot","owner":{"avatar_url":"https://secure.gravatar.com/avatar/acd200339f74e0ea50a328a08ab47984?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/sunspot","id":1027744,"login":"sunspot"}},"label":"sunspot:master","sha":"8187c8b0e84279245b1b91d6d2b41e61e7c083d4","ref":"master","user":{"avatar_url":"https://secure.gravatar.com/avatar/acd200339f74e0ea50a328a08ab47984?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/sunspot","id":1027744,"login":"sunspot"}},"state":"closed"},"action":"closed"}