ret.append("\n"); for (DeferredEvent deferredEvent: processInstance.getDeferredEvents()) { ret.append(sb); ret.append("EVENT: ");
@Transactional public DeferredEvent removeDeferredEvent(ProcessInstance processInstance, TaskBase task) { List<DeferredEvent> deferredEvents = processInstance.getDeferredEvents(); for (DeferredEvent deferredEvent: deferredEvents) { if (deferredEvent.getEventType() != EventType.DONE && deferredEvent.getTaskId().longValue() == task.getTaskId() && task.getProcessDefinitionName().equals(deferredEvent.getProcessDefinitionName())) { log.debug("killed deferred event processId {} taskId {} status {} {}", deferredEvent.getProcessInstance().getId(), deferredEvent.getId(), deferredEvent.getEventType() ,deferredEvent.getComment() ); deferredEvent.setEventType(EventType.DONE); return deferredEvent; } } log.debug("failed to find deferred event processId {} {} taskId {}", processInstance.getId(), task.getProcessDefinitionName(), task.getTaskId()); return null; }
public boolean execute(ProcessInstance processInstance) { log.debug("{}",this); // Most of the work is actually done in the executor. It loads the relevant handler and lets it execute. if (getTimeoutValue() > -1) { DeferredEvent deferredEvent = new DeferredEvent(); deferredEvent.setProcessDefinitionName(getOwnerProcess().getName()); deferredEvent.setTaskId(getTaskId()); deferredEvent.setProcessInstance(processInstance); long now = new Date().getTime(); deferredEvent.setCreated(now); deferredEvent.setEventType(EventType.DEFERRED); deferredEvent.setComment(trimComment(this.toString())); deferredEvent.setFire(now+getTimeoutValue()); processInstance.getDeferredEvents().add(deferredEvent); processInstance.setDeferredEvent(deferredEvent); } return true; }
deferredEvent.setProcessInstance(sibling); deferredEvent.setComment("aborting sibling"); sibling.getDeferredEvents().add(deferredEvent); deferredEvent.setEventType(EventType.SUBPROCESS_END); deferredEvent.setProcessInstance(parent); parent.getDeferredEvents().add(deferredEvent); deferredEvent.setComment("process instance: "+processInstance.getId());
deferredEvent.setFire(now+taskTry.getTimeoutValue()); deferredEvent.setComment(trimComment(taskTry.toString())); processInstance.getDeferredEvents().add(deferredEvent); processInstance.setDeferredEvent(deferredEvent); log.debug("recreating new deferred event for timeout: fire: {}",deferredEvent.getFire());
theDeferredEvents = (((this.deferredEvents!= null)&&(!this.deferredEvents.isEmpty()))?this.getDeferredEvents():null); strategy.appendField(locator, this, "deferredEvents", buffer, theDeferredEvents);
lhsDeferredEvents = (((this.deferredEvents!= null)&&(!this.deferredEvents.isEmpty()))?this.getDeferredEvents():null); List<DeferredEvent> rhsDeferredEvents; rhsDeferredEvents = (((that.deferredEvents!= null)&&(!that.deferredEvents.isEmpty()))?that.getDeferredEvents():null); if (!strategy.equals(LocatorUtils.property(thisLocator, "deferredEvents", lhsDeferredEvents), LocatorUtils.property(thatLocator, "deferredEvents", rhsDeferredEvents), lhsDeferredEvents, rhsDeferredEvents)) { return false;
theDeferredEvents = (((this.deferredEvents!= null)&&(!this.deferredEvents.isEmpty()))?this.getDeferredEvents():null); currentHashCode = strategy.hashCode(LocatorUtils.property(locator, "deferredEvents", theDeferredEvents), currentHashCode, theDeferredEvents);