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

Nicolas Lalevée updated LUCENE-766:
-----------------------------------

      Description: 
On a empty index, adding a document with two fields with the same name but with 
different term vector option fail. The field with 
TermVector.WITH_POSITIONS_OFFSETS is correctly indexed, as the offset are 
correclty extracted. The field with TermVector.NO is not. The TermVectorsWriter 
tries to add offset info given to the data of the filedinfo from the "fnm" 
file, but the DocumentWriter didn't prepared offset datas as it gets its info 
from the field itself, not from the fieldinfo.

Attaching a patch with a test. The test without the fix make this stack trace :

java.lang.IllegalStateException: Trying to write offsets that are null!
        at 
org.apache.lucene.index.TermVectorsWriter.writeField(TermVectorsWriter.java:311)
        at 
org.apache.lucene.index.TermVectorsWriter.closeField(TermVectorsWriter.java:142)
        at 
org.apache.lucene.index.TermVectorsWriter.closeDocument(TermVectorsWriter.java:100)
        at 
org.apache.lucene.index.TermVectorsWriter.close(TermVectorsWriter.java:240)
        at 
org.apache.lucene.index.DocumentWriter.writePostings(DocumentWriter.java:365)
        at 
org.apache.lucene.index.DocumentWriter.addDocument(DocumentWriter.java:114)
        at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:618)
        at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:601)
        at 
org.apache.lucene.index.TestDocumentWriter.testTermVector(TestDocumentWriter.java:147)


  was:
On a empty index, adding a document with two fields with the same name but with 
different term vector option fail. The field with 
TermVector.WITH_POSITIONS_OFFSETS is correctly indexed, as the offset are 
correclty extracted. The field with TermVector.NO is not. The TermVectorsWriter 
tries to add offset info given to the data of the filedinfo from the "fnm" 
file, but the DocumentWriter didn't prepared offset datas as it gets its info 
from the field itself, not from the fieldinfo.

Here is the stack trace :
java.lang.IllegalStateException: Trying to write offsets that are null!
        at 
org.apache.lucene.index.TermVectorsWriter.writeField(TermVectorsWriter.java:311)
        at 
org.apache.lucene.index.TermVectorsWriter.closeField(TermVectorsWriter.java:142)
        at 
org.apache.lucene.index.TermVectorsWriter.closeDocument(TermVectorsWriter.java:100)
        at 
org.apache.lucene.index.TermVectorsWriter.close(TermVectorsWriter.java:240)
        at 
org.apache.lucene.index.DocumentWriter.writePostings(DocumentWriter.java:365)
        at 
org.apache.lucene.index.DocumentWriter.addDocument(DocumentWriter.java:114)
        at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:618)
        at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:601)
        at 
org.apache.lucene.index.TestDocumentWriter.testTermVector(TestDocumentWriter.java:147)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at junit.framework.TestCase.runTest(TestCase.java:164)
        at junit.framework.TestCase.runBare(TestCase.java:130)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:120)
        at junit.framework.TestSuite.runTest(TestSuite.java:230)
        at junit.framework.TestSuite.run(TestSuite.java:225)
        at 
org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
        at 
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
        at 
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)

Attaching a patch with a test.

    Lucene Fields: [New, Patch Available]  (was: [Patch Available, New])

> Two same new field with and without Term vector make an IllegalStateException
> -----------------------------------------------------------------------------
>
>                 Key: LUCENE-766
>                 URL: https://issues.apache.org/jira/browse/LUCENE-766
>             Project: Lucene - Java
>          Issue Type: Bug
>          Components: Index
>    Affects Versions: 2.1
>            Reporter: Nicolas Lalevée
>
> On a empty index, adding a document with two fields with the same name but 
> with different term vector option fail. The field with 
> TermVector.WITH_POSITIONS_OFFSETS is correctly indexed, as the offset are 
> correclty extracted. The field with TermVector.NO is not. The 
> TermVectorsWriter tries to add offset info given to the data of the filedinfo 
> from the "fnm" file, but the DocumentWriter didn't prepared offset datas as 
> it gets its info from the field itself, not from the fieldinfo.
> Attaching a patch with a test. The test without the fix make this stack trace 
> :
> java.lang.IllegalStateException: Trying to write offsets that are null!
>       at 
> org.apache.lucene.index.TermVectorsWriter.writeField(TermVectorsWriter.java:311)
>       at 
> org.apache.lucene.index.TermVectorsWriter.closeField(TermVectorsWriter.java:142)
>       at 
> org.apache.lucene.index.TermVectorsWriter.closeDocument(TermVectorsWriter.java:100)
>       at 
> org.apache.lucene.index.TermVectorsWriter.close(TermVectorsWriter.java:240)
>       at 
> org.apache.lucene.index.DocumentWriter.writePostings(DocumentWriter.java:365)
>       at 
> org.apache.lucene.index.DocumentWriter.addDocument(DocumentWriter.java:114)
>       at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:618)
>       at org.apache.lucene.index.IndexWriter.addDocument(IndexWriter.java:601)
>       at 
> org.apache.lucene.index.TestDocumentWriter.testTermVector(TestDocumentWriter.java:147)

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to