throws TransitionException {
throws ProcessDestructException {
	private void doProcessDestruct(IProcessInstance ipi)			throws TransitionException {		try {			// call destructor class on process			if (ipi.getProcessDef().getClassDestruct() != null) {				ipi.setState(IProcessInstance.STATE_COMPLETING);				ITransaction t = stateFactory.beginTransaction();				stateFactory.saveObject(ipi);				t.commit();				IProcessDestruct ipd = classFactory.getProcessDestruct(ipi.getProcessDef().getClassDestruct());				ipd.processDestruct(ipi);			}			// and mark as complete			ipi.setState(IProcessInstance.STATE_COMPLETE);			ITransaction t = stateFactory.beginTransaction();			stateFactory.saveObject(ipi);			t.commit();		} catch (Exception e) {			String emsg = "Failed to complete process "					+ ipi;			log.error(emsg, e);			throw new TransitionException(emsg, e);		}	}