diff options
| author | Andrew Branson <andrew.branson@cern.ch> | 2013-07-23 09:41:43 +0200 |
|---|---|---|
| committer | Andrew Branson <andrew.branson@cern.ch> | 2013-09-16 12:44:14 +0200 |
| commit | e99ed30f6cae36c5f3fa03007d991e67894a01bb (patch) | |
| tree | 5fdfe6aab9e31ebd8c282eb16d42c5e2f75b1217 /src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java | |
| parent | 0bb38e90ac6e88cb406facbc075983384a2e164f (diff) | |
More
Diffstat (limited to 'src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java')
| -rw-r--r-- | src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java index aea34b2..cadf3a0 100644 --- a/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java +++ b/src/main/java/com/c2kernel/lifecycle/instance/OrSplit.java @@ -1,6 +1,7 @@ package com.c2kernel.lifecycle.instance;
import java.util.StringTokenizer;
+import com.c2kernel.common.InvalidDataException;
import com.c2kernel.graph.model.DirectedEdge;
import com.c2kernel.lookup.AgentPath;
import com.c2kernel.scripting.ScriptingEngineException;
@@ -19,12 +20,17 @@ public class OrSplit extends Split super();
}
@Override
- public void runNext(AgentPath agent) throws ScriptingEngineException
+ public void runNext(AgentPath agent, int itemSysKey) throws InvalidDataException
{
- String nexts =
- this
- .evaluateScript((String) getProperties().get("RoutingScriptName"), (String) getProperties().get("RoutingScriptVersion"))
- .toString();
+ String nexts;
+ String scriptName = (String) getProperties().get("RoutingScriptName");
+ String scriptVersion = (String) getProperties().get("RoutingScriptVersion");
+ try {
+ nexts = this.evaluateScript(scriptName, scriptVersion, itemSysKey).toString();
+ } catch (ScriptingEngineException e) {
+ Logger.error(e);
+ throw new InvalidDataException("Error running routing script "+scriptName+" v"+scriptVersion, null);
+ }
StringTokenizer tok = new StringTokenizer(nexts, ",");
Logger.msg(7, tok.countTokens() + " nexts to activate:" + nexts);
int active = 0;
@@ -42,7 +48,7 @@ public class OrSplit extends Split if (thisNext != null && thisNext.equals(nextEdge.getProperties().get("Alias")))
{
WfVertex term = nextEdge.getTerminusVertex();
- term.run(agent);
+ term.run(agent, itemSysKey);
Logger.msg(7, "Running " + nextEdge.getProperties().get("Alias"));
active++;
}
@@ -55,7 +61,7 @@ public class OrSplit extends Split Logger.error(e);
}
if (active == 0)
- throw new ScriptingEngineException("No nexts were activated!");
+ throw new InvalidDataException("No nexts were activated!", null);
}
|
