attached workflow replicates "Paul's problem" without using web services.
Note the need to use both string constants, beanshells and nested workflows - as beanshells are executed non-threaded.
Running this with in memory and no provenance should yield something like this at a random processor:
WARN 2010-02-01 11:05:28,778 (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:Workflow19:invocation24141:facade2238:Workflow19:Concatenate_two_strings[]: Uncaught exception while invoking Local service org.embl.ebi.escience.scuflworkers.java.StringConcat
java.lang.NullPointerException
at net.sf.taverna.t2.workflowmodel.impl.DataflowOutputPortImpl$1.receiveEvent(DataflowOutputPortImpl.java:65)
at net.sf.taverna.t2.workflowmodel.impl.BasicEventForwardingOutputPort.sendEvent(BasicEventForwardingOutputPort.java:70)
at net.sf.taverna.t2.workflowmodel.impl.ProcessorOutputPortImpl.receiveEvent(ProcessorOutputPortImpl.java:54)
at net.sf.taverna.t2.workflowmodel.impl.ProcessorCrystalizerImpl.jobCreated(ProcessorCrystalizerImpl.java:66)
at net.sf.taverna.t2.workflowmodel.impl.AbstractCrystalizer.receiveEvent(AbstractCrystalizer.java:88)
at net.sf.taverna.t2.workflowmodel.impl.ProcessorImpl$2.pushEvent(ProcessorImpl.java:143)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.impl.DispatchStackImpl$TopLayer.receiveResult(DispatchStackImpl.java:277)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Parallelize.receiveResult(Parallelize.java:165)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractDispatchLayer.receiveResult(AbstractDispatchLayer.java:84)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractErrorHandlerLayer.receiveResult(AbstractErrorHandlerLayer.java:136)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.AbstractErrorHandlerLayer.receiveResult(AbstractErrorHandlerLayer.java:136)
at net.sf.taverna.t2.workflowmodel.processor.dispatch.layers.Invoke$InvokeCallBack.receiveResult(Invoke.java:300)
at net.sf.taverna.t2.activities.beanshell.BeanshellActivity$1.run(BeanshellActivity.java:181)
at java.lang.Thread.run(Thread.java:619)
Integrated in
net.sf.taverna.t2.core #572
Made entities synchronized and also synchronized the looping over it. Attempt to solve