public void perform(final Execution execution, final boolean checkJoinType) { final InternalActivityDefinition node = execution.getNode(); if (LOG.isLoggable(Level.FINE)) { LOG.fine(execution.toString() + " executes " + node); } final ExternalActivity activity = node.getBehaviour(); try { execution.setPropagation(Propagation.UNSPECIFIED); activity.execute(execution, checkJoinType); } catch (final StaleStateException sse) { throw sse; } catch (final AssertionFailure af) { throw af; } catch (final LockAcquisitionException lae) { throw lae; } catch (final UnRollbackableException ure) { throw ure; } catch (final Throwable e) { handleException(execution, e); } if (execution.getPropagation() == Propagation.UNSPECIFIED) { execution.proceed(); } }
public void signal(final String signal, final Map<String, Object> parameters) { checkLock(); if (node != null) { if (LOG.isLoggable(Level.FINE)) { LOG.fine(toString() + " signals " + node); } final ExternalActivity externalActivity = node.getBehaviour(); try { setPropagation(Propagation.UNSPECIFIED); externalActivity.signal(this, signal, parameters); } catch (final RuntimeException e) { throw e; } catch (final Exception e) { final String message = ExceptionManager.getInstance().getFullMessage("bp_S_1", node, e.getMessage()); throw new BonitaRuntimeException(message, e); } if (getPropagation() == Propagation.UNSPECIFIED && !node.isInALoop()) { proceed(); } } else { final String message = ExceptionManager.getInstance().getFullMessage("bp_EI_6"); throw new BonitaRuntimeException(message); } }
parentInstance.getParentInstanceUUID(), parentInstance.getParentActivityUUID()); try { rootExecution.getNode().getBehaviour().signal(rootExecution, BODY_FINISHED, null); } catch (final Exception e) { throw new BonitaRuntimeException(e.getMessage(), e); execToSignal.getNode().getBehaviour().signal(execToSignal, SubFlow.SUBFLOW_SIGNAL, signalParameters); } catch (final Exception e) { throw new BonitaRuntimeException(e.getMessage(), e);