@Override public void handleDebugEvents(DebugEvent[] events) { for (int i = 0; i < events.length; i++) { DebugEvent event = events[i]; if (event.getKind() == DebugEvent.TERMINATE) { Object object = event.getSource(); ILaunch launch = null; if (object instanceof IProcess) { launch = ((IProcess)object).getLaunch(); } else if (object instanceof IDebugTarget) { launch = ((IDebugTarget)object).getLaunch(); } if (this.equals(launch)) { if (isTerminated()) { fireTerminate(); } } } } }