@Override
public void execute(String action, String name, Map<String, Object> parameters) throws BpmException {
log().t("signal",action,name,parameters);
if (getStatus() != STATUS.ACTIVE)
throw new BpmException(this,"instance is not active");
if (action != null) {
// check
Token root = processInstance.getRootToken();
if (!action.equals(root.getNode().getName()))
throw new BpmException(this,"action is not current " + action);
}
ContextInstance contextInstance = processInstance.getContextInstance();
if (parameters != null) contextInstance.setVariables(parameters);
if (name == null) processInstance.signal(); else processInstance.signal(name);