public void leave(ProcessContext context) {
		if (logger.isDebugEnabled()) {
			logger.debug(" now leave:" + this + " with context:"+context);
		}
		//登记日志
		context.getProcessEngine().registerNodeLogIfNecessary(context,ProcessLog.EVENT_LEAVE);
		this.callLeaveInvokerIfNcessary(context);
		String transitName = context.getUserTransit();
		Transition transit = null;
		if (transitName != null) {
			transit = this.transitions.get(transitName);
		} else {
			Iterator<Transition> iter = this.transitions.values().iterator();
			if (iter.hasNext())
				transit = iter.next();
		}
		if (transit != null) {
			context.getProcessEngine().doTransit(context, transit);
		} else{
			if(transitName==null)
				throw new RuntimeException("no transit found in node:" + this);
			else
				throw new RuntimeException("no transit found by name:"
						+ transitName + " in node:" + this);
		}

	}