[ 
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.

Reply via email to