You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ho...@apache.org on 2010/03/18 23:40:25 UTC

svn commit: r925031 - in /lucene/solr/trunk: CHANGES.txt src/java/org/apache/solr/response/XMLWriter.java

Author: hossman
Date: Thu Mar 18 22:40:25 2010
New Revision: 925031

URL: http://svn.apache.org/viewvc?rev=925031&view=rev
Log:
SOLR-1823: Fixed XMLResponseWriter (via XMLWriter) so it no longer throws a ClassCastException when a Map containing a non-String key is used.

Modified:
    lucene/solr/trunk/CHANGES.txt
    lucene/solr/trunk/src/java/org/apache/solr/response/XMLWriter.java

Modified: lucene/solr/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/CHANGES.txt?rev=925031&r1=925030&r2=925031&view=diff
==============================================================================
--- lucene/solr/trunk/CHANGES.txt (original)
+++ lucene/solr/trunk/CHANGES.txt Thu Mar 18 22:40:25 2010
@@ -197,6 +197,9 @@ Bug Fixes
 * SOLR-1798: Small memory leak (~100 bytes) in fastLRUCache for every
   commit. (yonik)
 
+* SOLR-1823: Fixed XMLResponseWriter (via XMLWriter) so it no longer throws
+  a ClassCastException when a Map containing a non-String key is used.
+  (Frank Wesemann, hossman)
 
 Other Changes
 ----------------------

Modified: lucene/solr/trunk/src/java/org/apache/solr/response/XMLWriter.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/response/XMLWriter.java?rev=925031&r1=925030&r2=925031&view=diff
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/response/XMLWriter.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/response/XMLWriter.java Thu Mar 18 22:40:25 2010
@@ -631,20 +631,25 @@ final public class XMLWriter {
     }
   }
 
-
-
-  //A map is currently represented as a named list
-  public void writeMap(String name, Map val) throws IOException {
-    Map map = val;
+  
+  /**
+   * writes a Map in the same format as a NamedList, using the
+   * stringification of the key Object when it's non-null.
+   *
+   * @param name
+   * @param map
+   * @throws IOException
+   * @see http://lucene.apache.org/solr/api/org/apache/solr/response/SolrQueryResponse.html#returnable_data
+   */
+  public void writeMap(String name, Map<Object,Object> map) throws IOException {
     int sz = map.size();
     startTag("lst", name, sz<=0);
     incLevel();
-    for (Map.Entry entry : (Set<Map.Entry>)map.entrySet()) {
-      // possible class-cast exception here...
-      String k = (String)entry.getKey();
+    for (Map.Entry<Object,Object> entry : map.entrySet()) {
+      Object k = entry.getKey();
       Object v = entry.getValue();
       // if (sz<indentThreshold) indent();
-      writeVal(k,v);
+      writeVal( null == k ? null : k.toString(), v);
     }
     decLevel();
     if (sz > 0) {