[ 
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]

Reply via email to