Author: yonik
Date: Fri Dec 5 10:04:11 2008
New Revision: 723804
URL: http://svn.apache.org/viewvc?rev=723804&view=rev
Log:
SOLR-898: Fix null pointer exception for the JSON response writer based formats
when nl.json=arrarr with null keys.
Modified:
lucene/solr/trunk/CHANGES.txt
lucene/solr/trunk/src/java/org/apache/solr/request/JSONResponseWriter.java
lucene/solr/trunk/src/test/org/apache/solr/request/JSONWriterTest.java
Modified: lucene/solr/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=723804&r1=723803&r2=723804&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Fri Dec 5 10:04:11 2008
@@ -149,6 +149,9 @@
14. SOLR-892: Fix serialization of booleans for PHPSerializedResponseWriter
(yonik)
+15. SOLR-898: Fix null pointer exception for the JSON response writer
+ based formats when nl.json=arrarr with null keys. (yonik)
+
Other Changes
----------------------
Modified:
lucene/solr/trunk/src/java/org/apache/solr/request/JSONResponseWriter.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/request/JSONResponseWriter.java?rev=723804&r1=723803&r2=723804&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/request/JSONResponseWriter.java
(original)
+++ lucene/solr/trunk/src/java/org/apache/solr/request/JSONResponseWriter.java
Fri Dec 5 10:04:11 2008
@@ -245,13 +245,15 @@
writeArrayOpener(1);
incLevel();
- writeStr(null,key,true);
+ if (key==null) {
+ writeNull(null);
+ } else {
+ writeStr(null, key, true);
+ }
writeArraySeparator();
writeVal(key,val.getVal(i));
decLevel();
writeArrayCloser();
-
-
}
decLevel();
Modified: lucene/solr/trunk/src/test/org/apache/solr/request/JSONWriterTest.java
URL:
http://svn.apache.org/viewvc/lucene/solr/trunk/src/test/org/apache/solr/request/JSONWriterTest.java?rev=723804&r1=723803&r2=723804&view=diff
==============================================================================
--- lucene/solr/trunk/src/test/org/apache/solr/request/JSONWriterTest.java
(original)
+++ lucene/solr/trunk/src/test/org/apache/solr/request/JSONWriterTest.java Fri
Dec 5 10:04:11 2008
@@ -63,5 +63,21 @@
w.write(buf, req, rsp);
assertEquals(buf.toString(),
"a:3:{s:5:\"data1\";s:5:\"hello\";s:5:\"data2\";i:42;s:5:\"data3\";b:1;}");
}
+
+ public void testJSON() throws IOException {
+ SolrQueryRequest req = req("wt","json","json.nl","arrarr");
+ SolrQueryResponse rsp = new SolrQueryResponse();
+ JSONResponseWriter w = new JSONResponseWriter();
+
+ StringWriter buf = new StringWriter();
+ NamedList nl = new NamedList();
+ nl.add("data1", "hello");
+ nl.add(null, 42);
+ rsp.add("nl", nl);
+
+ w.write(buf, req, rsp);
+ assertEquals(buf.toString(), "{\"nl\":[[\"data1\",\"hello\"],[null,42]]}");
+
+ }
}