[ https://issues.apache.org/jira/browse/SOLR-807?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12639930#action_12639930 ]
Hoss Man commented on SOLR-807: ------------------------------- Change which code? both BinaryResponseWriter+NamedListCodec and the XMLWriter classes use "val.getClass().getName() + ':' + val.toString()" to outbut objects on on the list of legal things that can be in a SolrQueryResponse... http://lucene.apache.org/solr/api/org/apache/solr/request/SolrQueryResponse.html I'm not very familiar with the way either SolrJ or the BinaryResponseWriter/NamedListCodec stuff works, but I don't think this is relaly about how either ResponseWriter deals with "objects" added directly to the response ... it seems to relate specifically to how BinaryResponseWriter deals with writing field values of Documents ... the text/xml based writers use FieldType.write(...) and let the FieldType decide how to best render itself, while the NameListCodec seems to make it's own decisions based on FieldType.toObject (although i'm not sure where toObject is getting called -- but that's the only reason i can think of why you would encounter a java.util.UUID object directly in a SolrDocument) This doesn't seem like a SolrJ in so much as a larger issue with the way the NamedListCodec works ... if it's not going to delegate to the FieldType to decide how to "write" a non standard object, then shouldn't it at least recognize and automatically extract that class type prefix info when it "reads" a non standard object? > UUIDField type cannot be recognized when wt=javabin is used > ----------------------------------------------------------- > > Key: SOLR-807 > URL: https://issues.apache.org/jira/browse/SOLR-807 > Project: Solr > Issue Type: Bug > Components: clients - java, search > Affects Versions: 1.3 > Reporter: Koji Sekiguchi > Priority: Trivial > Fix For: 1.3.1 > > > I'm using UUID via Solrj in my project. When I use javabin (default), I got: > *java.util.UUID:* 391e3214-4f8e-4abd-aa6b-4f12be79534f > as the uuid value. But if I use xml, I got: > 391e3214-4f8e-4abd-aa6b-4f12be79534f > I think the both of them should return same string. > program for reproducing the problem: > {code:java} > public static void main(String[] args) throws Exception { > CommonsHttpSolrServer server = new CommonsHttpSolrServer( > "http://localhost:8983/solr" ); > SolrQuery query = new SolrQuery().setQuery( "*:*" ); > //server.setParser( new XMLResponseParser() ); // uncomment for wt=xml > System.out.println( "===== " + > server.getParser().getClass().getSimpleName() + " =====" ); > QueryResponse rsp = server.query( query ); > SolrDocumentList docs = rsp.getResults(); > for( SolrDocument doc : docs ){ > Object id = doc.getFieldValue( "id" ); > System.out.println( "type = " + id.getClass().getName() + ", id = " + > id ); > Object timestamp = doc.getFieldValue( "timestamp" ); > System.out.println( "type = " + timestamp.getClass().getName() + ", > timestamp = " + timestamp ); > } > } > {code} > result for wt=javabin > {code:title=javabin} > ===== BinaryResponseParser ===== > type = java.lang.String, id = > java.util.UUID:391e3214-4f8e-4abd-aa6b-4f12be79534f > type = java.util.Date, timestamp = Wed Oct 15 00:20:50 JST 2008 > {code} > result for wt=xml > {code:title=xml} > ===== XMLResponseParser ===== > type = java.lang.String, id = 391e3214-4f8e-4abd-aa6b-4f12be79534f > type = java.util.Date, timestamp = Wed Oct 15 00:20:50 JST 2008 > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.