[
https://issues.apache.org/jira/browse/LUCENE-8441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16565418#comment-16565418
]
Michael McCandless commented on LUCENE-8441:
--------------------------------------------
+1, thanks for fixing so quickly [~jim.ferenczi]!
We could maybe improve the new per-DV-field-per-document check so that instead
of doing a for loop over all index sort fields, we add a new member to the
{{PerField}} in {{DefaultIndexingChain}} e.g.
{{requiredDocValuesSortFieldType}} or so? So we would do that for loop through
all index sort fields only when creating a new {{PerField}} (first time this
in-memory segment sees this field being indexed).
If that is non-null (meaning that field was included in the index sort), we
check that it's the same type as what the user is now trying to index?
But this can come later ... it's just a small performance improvement over the
functionally correct patch you created. Thanks!
> Wrong index sort field type throws unexpected NullPointerException
> ------------------------------------------------------------------
>
> Key: LUCENE-8441
> URL: https://issues.apache.org/jira/browse/LUCENE-8441
> Project: Lucene - Core
> Issue Type: Bug
> Components: core/index
> Reporter: Michael McCandless
> Assignee: Michael McCandless
> Priority: Minor
> Attachments: LUCENE-8441.patch, LUCENE-8441.patch
>
>
> I came across this scary exception if you pass the wrong {{SortField.Type}}
> for a field; I'll attach patch w/ small test case:
> {noformat}
> 1) testWrongSortFieldType(org.apache.lucene.index.TestIndexSorting)
> java.lang.NullPointerException
> at
> __randomizedtesting.SeedInfo.seed([995FF58C7B184E8F:B0CC507647B2ED95]:0)
> at
> org.apache.lucene.index.SortingTermVectorsConsumer.abort(SortingTermVectorsConsumer.java:87)
> at org.apache.lucene.index.TermsHash.abort(TermsHash.java:68)
> at
> org.apache.lucene.index.DefaultIndexingChain.abort(DefaultIndexingChain.java:332)
> at
> org.apache.lucene.index.DocumentsWriterPerThread.abort(DocumentsWriterPerThread.java:138)
> at
> org.apache.lucene.index.DocumentsWriterPerThread.maybeAbort(DocumentsWriterPerThread.java:532)
> at
> org.apache.lucene.index.DocumentsWriterPerThread.flush(DocumentsWriterPerThread.java:524)
> at
> org.apache.lucene.index.DocumentsWriter.doFlush(DocumentsWriter.java:554)
> at
> org.apache.lucene.index.DocumentsWriter.flushAllThreads(DocumentsWriter.java:719)
> at
> org.apache.lucene.index.IndexWriter.prepareCommitInternal(IndexWriter.java:3201)
> at
> org.apache.lucene.index.IndexWriter.commitInternal(IndexWriter.java:3446)
> at org.apache.lucene.index.IndexWriter.commit(IndexWriter.java:3411)
> at
> org.apache.lucene.index.TestIndexSorting.testWrongSortFieldType(TestIndexSorting.java:2489)
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]