Tom Blackford created OAK-8166: ---------------------------------- Summary: Index definition with orderable property definitions with and without functions breaks index Key: OAK-8166 URL: https://issues.apache.org/jira/browse/OAK-8166 Project: Jackrabbit Oak Issue Type: Bug Components: indexing Affects Versions: 1.8.12 Reporter: Tom Blackford
If an index definition contains the same orderable property with and without functions, it will fail to index any node which contains that property. The failure will be logged as [1]. Steps to reproduce: * Configure index with the two property definitions shown at [2]. * Refresh the index definition * Modify a node that falls under the definition - it will fail with the exception shown at [1] * Modify the 'non-function' index definition to not be orderable (orderable=false) * Refresh the index definition * Modify the same node - note there is no exception. Thanks to [~catholicon] for assistance identifying root cause. [1] {code} 25.03.2019 15:39:04.135 *WARN* [async-index-update-async] org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor Failed to index the node [/content/dam/Unknown-2.png] java.lang.IllegalArgumentException: DocValuesField ":dvjcr:content/metadata/dc:title" appears more than once in this document (only one value is allowed per field) at org.apache.lucene.index.SortedDocValuesWriter.addValue(SortedDocValuesWriter.java:62) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.DocValuesProcessor.addSortedField(DocValuesProcessor.java:125) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.DocValuesProcessor.addField(DocValuesProcessor.java:59) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.TwoStoredFieldsConsumers.addField(TwoStoredFieldsConsumers.java:36) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.DocFieldProcessor.processDocument(DocFieldProcessor.java:236) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:253) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:455) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1534) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1507) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.jackrabbit.oak.plugins.index.lucene.writer.DefaultIndexWriter.updateDocument(DefaultIndexWriter.java:86) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.addOrUpdate(LuceneIndexEditor.java:258) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.leave(LuceneIndexEditor.java:140) [org.apache.jackrabbit.oak-lucene:1.8.9] at org.apache.jackrabbit.oak.spi.commit.CompositeEditor.leave(CompositeEditor.java:74) [org.apache.jackrabbit.oak-store-spi:1.8.9] {code} [2] {code} "dcTitle": { "jcr:primaryType": "nt:unstructured", "nodeScopeIndex": "true", "useInSuggest": "true", "ordered": "false", "propertyIndex": "true", "useInSpellcheck": "true", "name": "jcr:content/metadata/dc:title", "boost": "2.0" }, "dcTitleLowercase": { "jcr:primaryType": "nt:unstructured", "ordered": "true", "propertyIndex": "true", "function": "fn:lower-case(jcr:content/metadata/@dc:title)" } {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)