/** * Check if plan is already aborted. */ protected void testBodyAborted(RPlan rplan) { // Throw error to exit body method of aborted plan. if(rplan!=null && rplan.isFinishing() && rplan.getLifecycleState()==PlanLifecycleState.BODY) { // System.out.println("aborting after block: "+rplan); throw new BodyAborted(); } }
/** * Check if plan is already aborted. */ protected void testBodyAborted(RPlan rplan) { // Throw error to exit body method of aborted plan. if(rplan!=null && rplan.isFinishing() && rplan.getLifecycleState()==PlanLifecycleState.BODY) { // System.out.println("aborting after block: "+rplan); throw new BodyAborted(); } }
/** * */ protected void dumpPlans() { if(plans!=null) { System.out.println("plans: "+plans.size()); System.out.println("--------"); for(RPlan plan: plans) { StringBuffer buf = new StringBuffer(); determineValid(plan, plan, buf); if(plan.isFinishing()) System.out.println("aborted zombie plan: "+plan.getId()); System.out.println(buf.toString()); System.out.println(plan.getId()+" "+plan.getLifecycleState()+" "+plan.getProcessingState()); System.out.println("--------"); } } }
/** * * @param plan * @param orig * @param buf */ protected void determineValid(RPlan plan, RPlan orig, StringBuffer buf) { buf.append(plan.getId()+plan.isFinishing()); Object reason = plan.getReason(); if(reason instanceof RGoal) { RGoal rg = (RGoal)reason; if(rg.isFinished()) System.out.println("fini goal"+" "+reason+" "+orig); RPlan pp = rg.getParentPlan(); buf.append(" reason is: "+((RProcessableElement)reason).getId()+rg.lifecyclestate); if(pp!=null) { if(pp.isFinished()) System.out.println("fini plan"+" "+pp+" "+orig); buf.append(" parent plan is: "); determineValid(pp, orig, buf); } } }
if(isFinishing() && PlanLifecycleState.BODY.equals(getLifecycleState()))
RPlan.RPLANS.set(rplan); Exception e = ex; if(rplan.isFinishing() && rplan.getLifecycleState()==PlanLifecycleState.BODY) e = new PlanAbortedException(); if(e!=null)
assert rplan.isFinishing() != (next==2): SUtil.getExceptionStacktrace(exception); // either finishing (due to abort) or failed. if(next==2)
if(!rplan.isFinishing() && RPlan.PlanLifecycleState.NEW.equals(rplan.getLifecycleState()))