diff options
Diffstat (limited to 'src/main/java/com/c2kernel/entity/agent')
| -rw-r--r-- | src/main/java/com/c2kernel/entity/agent/Job.java | 17 |
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);
}
|
