Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Blocker
-
Resolution: Fixed
-
Affects Version/s: 2.1.0
-
Fix Version/s: 2.1.2
-
Labels:None
Description
InvocationContextImpl does not cope if a thread is doing getEntities when another thread is adding or deleting an entity. The methods should be synchronized.
WARN 2010-02-01 14:45:25,848 (net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke:196) - Failed (INVOCATION) invoking Local service org.embl.ebi.escience.scuflworkers.java.StringConcat for job DispatchJobEvent facade0:Workflow1:Concatenate_two_strings[2 0 22 ]: Uncaught exception while invoking Local service org.embl.ebi.escience.scuflworkers.java.StringConcat java.util.ConcurrentModificationException at java.util.AbstractList$Itr.checkForComodification(Unknown Source) at java.util.AbstractList$Itr.next(Unknown Source) at net.sf.taverna.t2.invocation.impl.InvocationContextImpl.getEntities(InvocationContextImpl.java:60) at net.sf.taverna.t2.reference.impl.AbstractT2ReferenceGenerator.nextReferenceSetReference(AbstractT2ReferenceGenerator.java:53) at net.sf.taverna.t2.reference.impl.ReferenceSetServiceImpl.registerReferenceSet(ReferenceSetServiceImpl.java:116) at net.sf.taverna.t2.reference.impl.ReferenceServiceImpl.getNameForObject(ReferenceServiceImpl.java:329) at net.sf.taverna.t2.reference.impl.ReferenceServiceImpl.register(ReferenceServiceImpl.java:141) at net.sf.taverna.t2.activities.beanshell.BeanshellActivity$1.run(BeanshellActivity.java:177) at java.lang.Thread.run(Unknown Source)
when running attached workflow with inmemory and no provenance in 2.1.0
Integrated in
net.sf.taverna.t2.core #572
Made entities synchronized and also synchronized the looping over it. Attempt to solve