Menu

#37 Potential multi-thread bug

open
nobody
None
3
2012-07-02
2012-07-02
No

Using independent parser objects in different threads gave following stacktrace:

java.util.ConcurrentModificationException
at java.util.HashMap$HashIterator.nextEntry(HashMap.java:806)
at java.util.HashMap$KeyIterator.next(HashMap.java:841)
at uk.ac.ebi.arrayexpress2.magetab.parser.AbstractParser.fireParsingCompletedEvent(AbstractParser.java:97)
at uk.ac.ebi.arrayexpress2.magetab.parser.AbstractParser$DefaultHandlerListener.checkCompletion(AbstractParser.java:239)
at uk.ac.ebi.arrayexpress2.magetab.parser.AbstractParser$DefaultHandlerListener.handlingSucceeded(AbstractParser.java:224)
at uk.ac.ebi.arrayexpress2.magetab.handler.AbstractHandler.fireHandlingSucceededEvent(AbstractHandler.java:69)
at uk.ac.ebi.arrayexpress2.sampletab.handler.msi.impl.DatabaseURIHandler.read(DatabaseURIHandler.java:27)
at uk.ac.ebi.arrayexpress2.sampletab.parser.MSIParser$1.call(MSIParser.java:163)
at uk.ac.ebi.arrayexpress2.sampletab.parser.MSIParser$1.call(MSIParser.java:159)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

May need to synchronized firing parsing events?

Discussion

MongoDB Logo MongoDB