/** * Run the process and notify all listeners. * * @param pArgs arguments for ProcessBuilder * @param pProcessEvent store state in this ProcessEvent */ @SuppressWarnings("deprecation") void runAndNotify(LinkedList<String> pArgs, ProcessEvent pProcessEvent) { int rc; try { Process pr = startProcess(pArgs); pProcessEvent.setProcess(pr); for (ProcessEventListener pel : iProcessEventListener) { pel.processStarted(pProcessEvent); } // TODO: remove in future version for (ProcessListener pl : iProcessListener) { pl.processStarted(pr); } rc = waitForProcess(pr); pProcessEvent.setReturnCode(rc); finished(rc); } catch (Exception e) { pProcessEvent.setException(e); try { finished(e); } catch (Exception e2) { pProcessEvent.setException(e2); } } for (ProcessEventListener pel : iProcessEventListener) { pel.processTerminated(pProcessEvent); } // TODO: remove in future version for (ProcessListener pl : iProcessListener) { pl.processTerminated(pProcessEvent); } }