From: krsenthil <do-...@jb...> - 2006-07-10 20:23:58
|
Thanks for your help. I am copying the implementation of execute method code in Decision class. This code checks the private decisionDelegation list for handlers if there is one defined then it calls the handler. If you notice it doesn't look for decision handlers in action list (If that is expected behavior then this Decision implementation has broken the contract). So I guess that's why the decision handlers were not called. I do not know if there is any other alternative way to initialize the decisionDelegation. Please help me. public void execute(ExecutionContext executionContext) { String transitionName = null; try { if (decisionDelegation!=null) { DecisionHandler decisionHandler = (DecisionHandler) decisionDelegation.instantiate(); transitionName = decisionHandler.decide(executionContext); } else if (decisionExpression!=null) { Object result = JbpmExpressionEvaluator.evaluate(decisionExpression, executionContext); if (result==null) { throw new JbpmException("decision expression '"+decisionExpression+"' returned null"); } transitionName = result.toString(); } else { Iterator iter = decisionConditions.iterator(); while (iter.hasNext() && (transitionName==null)) { DecisionCondition decisionCondition = (DecisionCondition) iter.next(); Object result = JbpmExpressionEvaluator.evaluate(decisionCondition.getExpression(), executionContext); if (Boolean.TRUE.equals(result)) { transitionName = decisionCondition.getTransitionName(); } } if (transitionName==null) { getDefaultLeavingTransition().getName(); } } } catch (Throwable exception) { raiseException(exception, executionContext); } Transition transition = null; if (transitionName!=null) { log.debug("selected transition name '"+transitionName+"'"); transition = getLeavingTransition(transitionName); } else { log.debug("no transition name selected: taking default leaving transition"); transition = getDefaultLeavingTransition(); } if (transition==null) { throw new JbpmException("decision '"+name+"' selected non existing transition '"+transitionName+"'" ); } executionContext.leaveNode(transition); } View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3956747#3956747 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3956747 |