[ 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: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org