Petr Baudis created UIMA-4463:
---------------------------------
Summary: java.util.ConcurrentModificationException in
iterate-and-copyFs() loop
Key: UIMA-4463
URL: https://issues.apache.org/jira/browse/UIMA-4463
Project: UIMA
Issue Type: Bug
Components: Core Java Framework
Affects Versions: 2.7.0SDK
Reporter: Petr Baudis
My code, e.g.
https://github.com/brmson/yodaqa/blob/master/src/main/java/cz/brmlab/yodaqa/analysis/passextract/PassFilter.java#L67
works fine with UIMA-2.6.0 but with UIMA-2.7.0 and its rewritten CasCopier it
crashes with
Caused by: java.util.ConcurrentModificationException
at
org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.checkConcurrentModification(FSIndexRepositoryImpl.java:967)
at
org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.ll_get(FSIndexRepositoryImpl.java:1002)
at
org.apache.uima.cas.impl.FSIndexRepositoryImpl$LeafPointerIterator.get(FSIndexRepositoryImpl.java:995)
at
org.apache.uima.cas.impl.FSIteratorWrapper.get(FSIteratorWrapper.java:53)
at
org.apache.uima.cas.impl.FSIteratorImplBase.next(FSIteratorImplBase.java:67)
at
org.apache.uima.cas.impl.FSIteratorImplBase.next(FSIteratorImplBase.java:33)
at
cz.brmlab.yodaqa.analysis.passextract.PassFilter.process(PassFilter.java:74)
at
org.apache.uima.analysis_component.JCasAnnotator_ImplBase.process(JCasAnnotator_ImplBase.java:48)
at
+org.apache.uima.analysis_engine.impl.PrimitiveAnalysisEngine_impl.callAnalysisComponentProcess(PrimitiveAnalysisEngine_impl.java:385)
... 26 more
so it appears I cannot iterate a source view and simultaneously copyFs() from
it. This is a regression, and also seems rather counterintuitive - copyFs
surely shouldn't modify the source view? Using the new .withSnapshotIterator()
feature helps to work-around this, but for JCasUtil users this is not trivial
to do at the moment (and then, it should be documented precisely what the
CasCopier semantics in this regard is)..
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)