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) {