[
https://issues.apache.org/jira/browse/LUCENE-3183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13134192#comment-13134192
]
Michael McCandless commented on LUCENE-3183:
--------------------------------------------
I think the hack is actually correct, but maybe change it to check
termEnum.position >= 0?
So this was a case we missed from LUCENE-3183 (maybe there are more!?), where
we decided for the corner case of empty field and term text, the caller must
handle that the returned enum is unpositioned (in exchange for not adding an if
per next).
And maybe add the same comment about LUCENE-3183 on top of that logic?
> TestIndexWriter failure: AIOOBE
> -------------------------------
>
> Key: LUCENE-3183
> URL: https://issues.apache.org/jira/browse/LUCENE-3183
> Project: Lucene - Java
> Issue Type: Bug
> Affects Versions: 4.0
> Reporter: selckin
> Assignee: Michael McCandless
> Attachments: LUCENE-3183.patch, LUCENE-3183.patch, LUCENE-3183.patch,
> LUCENE-3183_test.patch
>
>
> trunk: r1133486
> {code}
> [junit] Testsuite: org.apache.lucene.index.TestIndexWriter
> [junit] Testcase:
> testEmptyFieldName(org.apache.lucene.index.TestIndexWriter): Caused an
> ERROR
> [junit] CheckIndex failed
> [junit] java.lang.RuntimeException: CheckIndex failed
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:158)
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:144)
> [junit] at
> org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:477)
> [junit] at
> org.apache.lucene.index.TestIndexWriter.testEmptyFieldName(TestIndexWriter.java:857)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1362)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1280)
> [junit]
> [junit]
> [junit] Tests run: 39, Failures: 0, Errors: 1, Time elapsed: 17.634 sec
> [junit]
> [junit] ------------- Standard Output ---------------
> [junit] CheckIndex failed
> [junit] Segments file=segments_1 numSegments=1 version=FORMAT_4_0 [Lucene
> 4.0]
> [junit] 1 of 1: name=_0 docCount=1
> [junit] codec=SegmentCodecs [codecs=[PreFlex],
> provider=org.apache.lucene.index.codecs.CoreCodecProvider@3f78807]
> [junit] compound=false
> [junit] hasProx=true
> [junit] numFiles=8
> [junit] size (MB)=0
> [junit] diagnostics = {os.version=2.6.39-gentoo, os=Linux,
> lucene.version=4.0-SNAPSHOT, source=flush, os.arch=amd64,
> java.version=1.6.0_25, java.vendor=Sun Microsystems Inc.}
> [junit] no deletions
> [junit] test: open reader.........OK
> [junit] test: fields..............OK [1 fields]
> [junit] test: field norms.........OK [1 fields]
> [junit] test: terms, freq, prox...ERROR:
> java.lang.ArrayIndexOutOfBoundsException: -1
> [junit] java.lang.ArrayIndexOutOfBoundsException: -1
> [junit] at
> org.apache.lucene.index.codecs.preflex.TermInfosReader.seekEnum(TermInfosReader.java:212)
> [junit] at
> org.apache.lucene.index.codecs.preflex.TermInfosReader.seekEnum(TermInfosReader.java:301)
> [junit] at
> org.apache.lucene.index.codecs.preflex.TermInfosReader.get(TermInfosReader.java:234)
> [junit] at
> org.apache.lucene.index.codecs.preflex.TermInfosReader.terms(TermInfosReader.java:371)
> [junit] at
> org.apache.lucene.index.codecs.preflex.PreFlexFields$PreTermsEnum.reset(PreFlexFields.java:719)
> [junit] at
> org.apache.lucene.index.codecs.preflex.PreFlexFields$PreTerms.iterator(PreFlexFields.java:249)
> [junit] at
> org.apache.lucene.index.PerFieldCodecWrapper$FieldsReader$FieldsIterator.terms(PerFieldCodecWrapper.java:147)
> [junit] at
> org.apache.lucene.index.CheckIndex.testTermIndex(CheckIndex.java:610)
> [junit] at
> org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:495)
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:154)
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:144)
> [junit] at
> org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:477)
> [junit] at
> org.apache.lucene.index.TestIndexWriter.testEmptyFieldName(TestIndexWriter.java:857)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:597)
> [junit] at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> [junit] at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> [junit] at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> [junit] at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> [junit] at
> org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
> [junit] at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> [junit] at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> [junit] at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1362)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1280)
> [junit] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> [junit] at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> [junit] at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> [junit] at
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> [junit] at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> [junit] at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> [junit] at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> [junit] at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> [junit] at
> junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:422)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:931)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:758)
> [junit] test: stored fields.......OK [0 total field count; avg 0
> fields per doc]
> [junit] test: term vectors........OK [0 total vector count; avg 0
> term/freq vector fields per doc]
> [junit] FAILED
> [junit] WARNING: fixIndex() would remove reference to this segment;
> full exception:
> [junit] java.lang.RuntimeException: Term Index test failed
> [junit] at
> org.apache.lucene.index.CheckIndex.checkIndex(CheckIndex.java:508)
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:154)
> [junit] at
> org.apache.lucene.util._TestUtil.checkIndex(_TestUtil.java:144)
> [junit] at
> org.apache.lucene.store.MockDirectoryWrapper.close(MockDirectoryWrapper.java:477)
> [junit] at
> org.apache.lucene.index.TestIndexWriter.testEmptyFieldName(TestIndexWriter.java:857)
> [junit] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> [junit] at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> [junit] at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> [junit] at java.lang.reflect.Method.invoke(Method.java:597)
> [junit] at
> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
> [junit] at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
> [junit] at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
> [junit] at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
> [junit] at
> org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
> [junit] at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> [junit] at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> [junit] at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1362)
> [junit] at
> org.apache.lucene.util.LuceneTestCase$LuceneTestCaseRunner.runChild(LuceneTestCase.java:1280)
> [junit] at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
> [junit] at
> org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
> [junit] at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
> [junit] at
> org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
> [junit] at
> org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
> [junit] at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
> [junit] at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
> [junit] at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
> [junit] at
> junit.framework.JUnit4TestAdapter.run(JUnit4TestAdapter.java:39)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.run(JUnitTestRunner.java:422)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.launch(JUnitTestRunner.java:931)
> [junit] at
> org.apache.tools.ant.taskdefs.optional.junit.JUnitTestRunner.main(JUnitTestRunner.java:758)
> [junit]
> [junit] WARNING: 1 broken segments (containing 1 documents) detected
> [junit]
> [junit] ------------- ---------------- ---------------
> [junit] ------------- Standard Error -----------------
> [junit] NOTE: reproduce with: ant test -Dtestcase=TestIndexWriter
> -Dtestmethod=testEmptyFieldName
> -Dtests.seed=-3770357642070518646:-3121175410586002489 -Dtests.multiplier=3
> [junit] NOTE: test params are: codec=PreFlex, locale=zh,
> timezone=Indian/Antananarivo
> [junit] NOTE: all tests run in this JVM:
> [junit] [TestDateTools, TestDeletionPolicy, TestDocsAndPositions,
> TestFlex, TestIndexReaderCloneNorms, TestIndexWriter]
> [junit] NOTE: Linux 2.6.39-gentoo amd64/Sun Microsystems Inc. 1.6.0_25
> (64-bit)/cpus=8,threads=1,free=85972280,total=232521728
> [junit] ------------- ---------------- ---------------
> [junit] TEST org.apache.lucene.index.TestIndexWriter FAILED
> {code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.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]