[ https://issues.apache.org/jira/browse/UIMA-1248?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marshall Schor updated UIMA-1248: --------------------------------- Affects Version/s: 2.3 defer past 2.3.0 > ResourceManager initialization is not thread-safe > ------------------------------------------------- > > Key: UIMA-1248 > URL: https://issues.apache.org/jira/browse/UIMA-1248 > Project: UIMA > Issue Type: Bug > Components: Core Java Framework > Affects Versions: 2.2.2, 2.3 > Reporter: Adam Lally > Assignee: Adam Lally > Priority: Minor > > If multiple threads concurrently call UIMAFramework.produceAnalysisEngine and > pass the same instance of ResourceManager as an argument, you can get > intermittent exceptions in the ResourceManager such as: > java.lang.ArrayIndexOutOfBoundsException > at java.lang.System.arraycopy(Native Method) > at java.util.ArrayList.ensureCapacity(ArrayList.java:170) > at java.util.ArrayList.add(ArrayList.java:351) > at > org.apache.uima.resource.impl.CasManager_impl.addMetaData(CasManager_impl.java:82) > at > org.apache.uima.analysis_engine.impl.AnalysisEngineImplBase.initialize(AnalysisEngineImplBase.java:115) > at > org.apache.uima.analysis_engine.impl.AggregateAnalysisEngine_impl.initialize(AggregateAnalysisEngine_impl.java:126) > The workaround is to synchronize the calls to > UIMAFramework.produceAnalysisEngine. However, this is suboptimal if > annotator initialization is expensive and you want it to be run in parallel > on multiple cores. We should consider adding synchronization to the > ResourceManager (and the classes it delegates to such as CasManager) to allow > this to work. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.