summaryrefslogtreecommitdiff
path: root/src/main/java/com/c2kernel/entity/agent/Job.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/c2kernel/entity/agent/Job.java')
-rw-r--r--src/main/java/com/c2kernel/entity/agent/Job.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/main/java/com/c2kernel/entity/agent/Job.java b/src/main/java/com/c2kernel/entity/agent/Job.java
index fe2084d..13bd268 100644
--- a/src/main/java/com/c2kernel/entity/agent/Job.java
+++ b/src/main/java/com/c2kernel/entity/agent/Job.java
@@ -349,15 +349,16 @@ public class Job implements C2KLocalObject
synchronized (ocInitCache) {
ocInit = ocInitCache.get(ocPropName);
if (ocInit == null) {
- Object ocInitObj = Gateway.getProperties().get(ocPropName);
- if (ocInitObj instanceof String) {
- try {
- ocInitObj = Class.forName((String)ocInitObj).newInstance();
- } catch (Exception e) {
- Logger.error(e);
- throw new InvalidDataException("Could not instantiate OutcomeInstantiator "+ocInitObj+" for "+ocPropName);
- }
+ Object ocInitObj;
+ if (!Gateway.getProperties().containsKey(ocPropName)) {
+ throw new InvalidDataException("Outcome instantiator "+ocPropName+" isn't defined", "");
}
+ try {
+ ocInitObj = Gateway.getProperties().getInstance(ocPropName);
+ } catch (Exception e) {
+ Logger.error(e);
+ throw new InvalidDataException("Outcome instantiator "+ocPropName+" couldn't be instantiated", "");
+ }
ocInit = (OutcomeInitiator)ocInitObj; // throw runtime class cast if it isn't one
ocInitCache.put(ocPropName, ocInit);
}