[ 
https://issues.apache.org/jira/browse/SOLR-8050?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14743947#comment-14743947
 ] 

Burkhard Buelte commented on SOLR-8050:
---------------------------------------

To my research the value.toString  
line 715 in TrieField.createField  (see screenshot-1.png) is the cause, where 
value is of type Date and toString not expected DateString format.

> Partial update on document with multivalued date field fails
> ------------------------------------------------------------
>
>                 Key: SOLR-8050
>                 URL: https://issues.apache.org/jira/browse/SOLR-8050
>             Project: Solr
>          Issue Type: Bug
>          Components: clients - java, SolrJ
>    Affects Versions: 5.2.1
>         Environment: embedded solr
> java 1.7
> win
>            Reporter: Burkhard Buelte
>         Attachments: screenshot-1.png
>
>
> When updating a document with multivalued date field Solr throws a exception
>     like: org.apache.solr.common.SolrException: Invalid Date String:'Mon Sep 
> 14 01:48:38 CEST 2015'
> even if the update document doesn't contain any datefield.
> See following code snippet to reproduce 
> 1. create a doc with multivalued date field (here dynamic field _dts)
>         SolrInputDocument doc = new SolrInputDocument();
>         String id = Long.toString(System.currentTimeMillis());
>         System.out.println("testUpdate: adding test document to solr ID=" + 
> id);
>         doc.addField(CollectionSchema.id.name(), id);
>         doc.addField(CollectionSchema.title.name(), "Lorem ipsum");
>         doc.addField(CollectionSchema.host_s.name(), "yacy.net");
>         doc.addField(CollectionSchema.text_t.name(), "Lorem ipsum dolor sit 
> amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut 
> labore et dolore magna aliqua.");
>         doc.addField(CollectionSchema.dates_in_content_dts.name(), new 
> Date());
>         solr.add(doc);
>         solr.commit(true);
> 2. update any field on this doc via partial update
>         SolrInputDocument sid = new SolrInputDocument();
>         sid.addField(CollectionSchema.id.name(), 
> doc.getFieldValue(CollectionSchema.id.name()));
>         sid.addField(CollectionSchema.host_s.name(), "yacy.yacy");
>         solr.update(sid);
>         solr.commit(true);
> Result
> Caused by: org.apache.solr.common.SolrException: Invalid Date String:'Mon Sep 
> 14 01:48:38 CEST 2015'
>       at org.apache.solr.util.DateFormatUtil.parseMath(DateFormatUtil.java:87)
>       at 
> org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:473)
>       at org.apache.solr.schema.TrieField.createFields(TrieField.java:715)
>       at 
> org.apache.solr.update.DocumentBuilder.addField(DocumentBuilder.java:48)
>       at 
> org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:123)
>       at 
> org.apache.solr.update.AddUpdateCommand.getLuceneDocument(AddUpdateCommand.java:83)
>       at 
> org.apache.solr.update.DirectUpdateHandler2.addDoc0(DirectUpdateHandler2.java:237)
>       at 
> org.apache.solr.update.DirectUpdateHandler2.addDoc(DirectUpdateHandler2.java:163)
>       at 
> org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:69)
>       at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>       at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.doLocalAdd(DistributedUpdateProcessor.java:955)
>       at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:1110)
>       at 
> org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:706)
>       at 
> org.apache.solr.update.processor.LogUpdateProcessor.processAdd(LogUpdateProcessorFactory.java:104)
>       at 
> org.apache.solr.update.processor.UpdateRequestProcessor.processAdd(UpdateRequestProcessor.java:51)
>       at 
> org.apache.solr.update.processor.LanguageIdentifierUpdateProcessor.processAdd(LanguageIdentifierUpdateProcessor.java:207)
>       at 
> org.apache.solr.handler.loader.XMLLoader.processUpdate(XMLLoader.java:250)
>       at org.apache.solr.handler.loader.XMLLoader.load(XMLLoader.java:177)
>       at 
> org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:98)
>       at 
> org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74)
>       at 
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
>       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
>       at 
> org.apache.solr.client.solrj.embedded.EmbeddedSolrServer.request(EmbeddedSolrServer.java:179)
>       at 
> org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:135)
>       at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:174)
>       at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:191)
> P.S. the line "solr.update" takes care to create a partial update document, 
> with proper {"set":[fieldname:value]}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to