Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Minor
-
Resolution: Fixed
-
Affects Version/s: 1.5
-
Fix Version/s: 1.5
-
Component/s: None
-
Labels:None
Description
If for some reason there is several instance containers in the active Zaria profile, each of them will be notified when you click "Run" on a workflow, and so each of them will make the EnactorInvocation panel.
However, the actual starting of the workflow is for some reason performed by the said EnactorInvocation panel in the constructor.
This does not cause any major problems because the thread that is spawned to start the second workflow fails early with an exception:
ERROR 2006-11-07 13:04:38,485 (uk.ac.soton.itinnovation.freefluo.core.flow.FlowState:131) - Illegal state transition. Received: run. flowId: 0 while in state: RUNNING
Exception in thread "Thread-207" java.lang.IllegalStateException: Illegal state transition. Received: run. flowId: 0 while in state: RUNNING
at uk.ac.soton.itinnovation.freefluo.core.flow.FlowState.run(FlowState.java:132)
at uk.ac.soton.itinnovation.freefluo.core.flow.Flow.run(Flow.java:293)
at uk.ac.soton.itinnovation.freefluo.exts.taverna.TavernaWorkflowInstance.run(TavernaWorkflowInstance.java:112)
at uk.ac.soton.itinnovation.freefluo.main.EngineImpl$1.run(EngineImpl.java:195)
However, before this, the input map is set again, and this could potentially cause problems.
There is really no reason why this should be done from the GUI constructor either, preferably just some utility method somewhere would be enough.
As of
TAV-219, "TODO: Run workflow if no inputs are needed! (Requires refactoring out run-method from InvocationPanel)"Which would require a call to that utility method as well.
TAV-219, "TODO: Run workflow if no inputs are needed! (Requires refactoring out run-method from InvocationPanel)" Which would require a call to that utility method as well.