Hi Earwin,

As this error occurs directly inside the HashMap and so is Java's code, I
think this is 
a) an error in Java's HashMap implementation (haha, unlikely). But I tend to
say, Java's HashMap is correct...
b) missing synchronization around the HashMap, so it is modified at the same
time. So either we should use a Collections.synchronizedMap() here or
somehow control synchronization in a different way.

Uwe

-----
Uwe Schindler
H.-H.-Meier-Allee 63, D-28213 Bremen
http://www.thetaphi.de
eMail: u...@thetaphi.de

> -----Original Message-----
> From: Earwin Burrfoot [mailto:ear...@gmail.com]
> Sent: Saturday, May 16, 2009 11:10 AM
> To: java-dev@lucene.apache.org
> Subject: Random test failure
> 
> Running latest lucene trunk with some patches applied, but they do not
> touch IndexWriter and friends anywhere.
> Happened once, I failed to reproduce it, with and without patches.
> 
> Java(TM) SE Runtime Environment (build 1.6.0_07-b06-153)
> Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_07-b06-57, mixed mode)
> 
> [junit] Testsuite: org.apache.lucene.index.TestOmitTf
> [junit] Tests run: 5, Failures: 1, Errors: 0, Time elapsed: 0.708 sec
> [junit]
> [junit] ------------- Standard Error -----------------
> [junit] Exception in thread "Lucene Merge Thread #0"
> org.apache.lucene.index.MergePolicy$MergeException:
> java.lang.ArrayIndexOutOfBoundsException: 36
> [junit]       at
> org.apache.lucene.index.ConcurrentMergeScheduler.handleMergeException(Conc
> urrentMergeScheduler.java:351)
> [junit]       at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(Concurren
> tMergeScheduler.java:315)
> [junit] Caused by: java.lang.ArrayIndexOutOfBoundsException: 36
> [junit]       at java.util.HashMap.getEntry(HashMap.java:345)
> [junit]       at java.util.HashMap.containsKey(HashMap.java:335)
> [junit]       at java.util.HashSet.contains(HashSet.java:184)
> [junit]       at
> org.apache.lucene.store.MockRAMDirectory.createOutput(MockRAMDirectory.jav
> a:212)
> [junit]       at
> org.apache.lucene.index.FormatPostingsPositionsWriter.<init>(FormatPosting
> sPositionsWriter.java:42)
> [junit]       at
> org.apache.lucene.index.FormatPostingsDocsWriter.<init>(FormatPostingsDocs
> Writer.java:55)
> [junit]       at
> org.apache.lucene.index.FormatPostingsTermsWriter.<init>(FormatPostingsTer
> msWriter.java:33)
> [junit]       at
> org.apache.lucene.index.FormatPostingsFieldsWriter.<init>(FormatPostingsFi
> eldsWriter.java:59)
> [junit]       at
> org.apache.lucene.index.SegmentMerger.mergeTerms(SegmentMerger.java:485)
> [junit]       at
> org.apache.lucene.index.SegmentMerger.merge(SegmentMerger.java:140)
> [junit]       at
> org.apache.lucene.index.IndexWriter.mergeMiddle(IndexWriter.java:4808)
> [junit]       at
> org.apache.lucene.index.IndexWriter.merge(IndexWriter.java:4425)
> [junit]       at
> org.apache.lucene.index.ConcurrentMergeScheduler.doMerge(ConcurrentMergeSc
> heduler.java:235)
> [junit]       at
> org.apache.lucene.index.ConcurrentMergeScheduler$MergeThread.run(Concurren
> tMergeScheduler.java:291)
> [junit] ------------- ---------------- ---------------
> [junit] Testcase: testBasic(org.apache.lucene.index.TestOmitTf):
FAILED
> [junit] ConcurrentMergeScheduler hit unhandled exceptions
> [junit] junit.framework.AssertionFailedError: ConcurrentMergeScheduler
> hit unhandled exceptions
> [junit]       at
> org.apache.lucene.util.LuceneTestCase.tearDown(LuceneTestCase.java:55)
> [junit]
> [junit]
> [junit] Test org.apache.lucene.index.TestOmitTf FAILED
> 
> 
> --
> Kirill Zakharenko/Кирилл Захаренко (ear...@gmail.com)
> Home / Mobile: +7 (495) 683-567-4 / +7 (903) 5-888-423
> ICQ: 104465785
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
> For additional commands, e-mail: java-dev-h...@lucene.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org

Reply via email to