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

Vikas Saurabh commented on OAK-8166:
------------------------------------

[~nitigup], ok, your code does describe why only relative properties are 
affected (because aggListItems.onResult come into play) and we need 2 same 
relative properties for the collision to occur.

I'd have to step in the code with your test to be sure - but my gut feeling is 
that if we are attempting to put colliding fields due to separate prop defs 
then the code that's attempting to inject is doing something wrong. Hiding it 
by ignoring duplicate properties as a just-in-time check before sending the doc 
to writer is imo not the right approach.

> 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
>            Priority: Major
>         Attachments: OAK-8166_1.patch
>
>
> 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": "true",
>     "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)

Reply via email to