public static boolean waitForServerToChangeState( IServer server, Shell shell, int changeStateFrom, int changeStateTo, String msg) { ProgressMonitorDialog progressMonitorDialog = new ProgressMonitorDialog(shell); CarbonServerStateChange serverStateChange = new CarbonServerStateChange(server, changeStateFrom, changeStateTo, 180000, msg); progressMonitorDialog.setBlockOnOpen(false); try { progressMonitorDialog.run(true, true, serverStateChange); return progressMonitorDialog.getReturnCode() != ProgressMonitorDialog.CANCEL; } catch (InvocationTargetException e) { log.error(e); } catch (InterruptedException e) { log.error(e); } return false; }