Hi everybody,
I'm back at hacking a jBPM App and I've just run into my favorite topic:
Is it possible that the
GraphElement
List getRuntimeActionsForEvent(ExecutionContext executionContext, String eventType) {
List runtimeActionsForEvent = null;
List runtimeActions = executionContext.getProcessInstance().getRuntimeActions();
if (runtimeActions!=null) {
Iterator iter = runtimeActions.iterator();
while (iter.hasNext()) {
RuntimeAction runtimeAction = (RuntimeAction) iter.next();
// if the runtime-action action is registered on this element and this eventType
if ( (this==runtimeAction.getGraphElement())
&& (eventType.equals(runtimeAction.getEventType()))
) {
// ... add its action to the list of runtime actions
if (runtimeActionsForEvent==null) runtimeActionsForEvent = new ArrayList();
runtimeActionsForEvent.add(runtimeAction.getAction());
}
}
}
return runtimeActionsForEvent;
}
isn't really what you want?
If you debug it you will (sometimes) have the situation that
thisis a straight forward Java Object and
runtimeAction.getGraphElement() resolves to a Node$$EnhancerByCGLIB$$xxxxx. Both objects represent the same node (same id, the CGLIB even refs to the 'this' instance in its 'target' field.... but '==' obviously fails.
Am I missing something? Bug? Jira? Help?
Greetings from Bern