You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Thomas Mueller (Jira)" <ji...@apache.org> on 2022/03/14 15:22:00 UTC

[jira] [Updated] (OAK-9724) Handle duplicate functions gracefully in indexing

     [ https://issues.apache.org/jira/browse/OAK-9724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Thomas Mueller updated OAK-9724:
--------------------------------
    Component/s: indexing

> Handle duplicate functions gracefully in indexing
> -------------------------------------------------
>
>                 Key: OAK-9724
>                 URL: https://issues.apache.org/jira/browse/OAK-9724
>             Project: Jackrabbit Oak
>          Issue Type: Improvement
>          Components: indexing
>            Reporter: Thomas Mueller
>            Priority: Major
>
> If the index definition indexes the same function multiple times:
> {noformat}
>                "lowercaseNodename":{
>                   "jcr:primaryType":"nam:nt:unstructured",
>                   "ordered":true,
>                   "propertyIndex":true,
>                   "function":"fn:lower-case(fn:name())"
>                },
>                "NodeNameLowerCase":{
>                   "jcr:primaryType":"nam:nt:unstructured",
>                   "ordered":true,
>                   "propertyIndex":true,
>                   "function":"fn:lower-case(fn:name())"
>                }
> {noformat}
> Then, currently, indexing fails:
> {noformat}
> java.lang.IllegalArgumentException: DocValuesField ":dvfunction*lower*@:name" appears more than once in this document (only one value is allowed per field)
> 	at org.apache.lucene.index.SortedDocValuesWriter.addValue(SortedDocValuesWriter.java:62)
> 	at org.apache.lucene.index.DocValuesProcessor.addSortedField(DocValuesProcessor.java:125)
> 	at org.apache.lucene.index.DocValuesProcessor.addField(DocValuesProcessor.java:59)
> 	at org.apache.lucene.index.TwoStoredFieldsConsumers.addField(TwoStoredFieldsConsumers.java:36)
> 	at org.apache.lucene.index.DocFieldProcessor.processDocument(DocFieldProcessor.java:236)
> 	at org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:253)
> 	at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:455)
> 	at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1534)
> 	at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1204)
> 	at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:1185)
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.writer.DefaultIndexWriter.updateDocument(DefaultIndexWriter.java:93)
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.writer.DefaultIndexWriter.updateDocument(DefaultIndexWriter.java:54)
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.writer.MultiplexingIndexWriter.updateDocument(MultiplexingIndexWriter.java:60)
> 	at org.apache.jackrabbit.oak.plugins.index.lucene.writer.MultiplexingIndexWriter.updateDocument(MultiplexingIndexWriter.java:37)
> 	at org.apache.jackrabbit.oak.index.indexer.document.LuceneIndexer.writeToIndex(LuceneIndexer.java:108)
> 	at org.apache.jackrabbit.oak.index.indexer.document.LuceneIndexer.index(LuceneIndexer.java:80)
> {noformat}
> This should be handled gracefully.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)