Source:
public void updateDebugConfig(IReplicationController replicationController, DebuggingContext debugContext, IProgressMonitor monitor) throws CoreException { monitor.subTask("Updating Deployment Configuration"); if (replicationController == null || replicationController.getEnvironmentVariables() == null) { return; } updateDeploymentConfigValues(replicationController, debugContext); IClient client = getClient(replicationController); ReplicationControllerListenerJob deploymentListenerJob = new ReplicationControllerListenerJob(replicationController); deploymentListenerJob.addJobChangeListener(new JobChangeAdapter() { @Override public void done(IJobChangeEvent event) { ConnectionsRegistrySingleton.getInstance().removeListener(deploymentListenerJob.getConnectionsRegistryListener()); debugContext.setPod(deploymentListenerJob.getPod()); if (event.getResult().isOK() && debugContext.getDebugListener() != null) { try { debugContext.getDebugListener().onPodRestart(debugContext, monitor); } catch (CoreException e) { throw new OpenShiftCoreException(e); } } }; }); ConnectionsRegistrySingleton.getInstance().addListener(deploymentListenerJob.getConnectionsRegistryListener()); deploymentListenerJob.schedule(); client.update(replicationController); if (ResourceKind.REPLICATION_CONTROLLER.equals(replicationController.getKind())) { for(IPod pod : ResourceUtils.getPodsFor(replicationController)) { client.delete(pod); } } try { deploymentListenerJob.join(ReplicationControllerListenerJob.TIMEOUT, monitor); } catch (OperationCanceledException | InterruptedException e) { e.printStackTrace(); } IStatus result = deploymentListenerJob.getResult(); if (result == null) { throw new CoreException(deploymentListenerJob.getTimeOutStatus()); } else if (!result.isOK()) { throw new CoreException(result); } }

Target:
public void updateDebugConfig(IReplicationController replicationController, DebuggingContext debugContext, IProgressMonitor monitor) throws CoreException { monitor.subTask("Updating Deployment Configuration"); if (replicationController == null || replicationController.getEnvironmentVariables() == null) { return; } updateDeploymentConfigValues(replicationController, debugContext); IClient client = getClient(replicationController); ReplicationControllerListenerJob rcListenerJob = new ReplicationControllerListenerJob(replicationController); rcListenerJob.addJobChangeListener(new JobChangeAdapter() { @Override public void done(IJobChangeEvent event) { ConnectionsRegistrySingleton.getInstance().removeListener(rcListenerJob.getConnectionsRegistryListener()); debugContext.setPod(rcListenerJob.getPod()); if (event.getResult().isOK() && debugContext.getDebugListener() != null) { try { debugContext.getDebugListener().onPodRestart(debugContext, monitor); } catch (CoreException e) { throw new OpenShiftCoreException(e); } } }; }); ConnectionsRegistrySingleton.getInstance().addListener(rcListenerJob.getConnectionsRegistryListener()); rcListenerJob.schedule(); client.update(replicationController); if (ResourceKind.REPLICATION_CONTROLLER.equals(replicationController.getKind())) { for(IPod pod : ResourceUtils.getPodsFor(replicationController)) { client.delete(pod); } } try { rcListenerJob.join(ReplicationControllerListenerJob.TIMEOUT, monitor); } catch (OperationCanceledException | InterruptedException e) { throw new OpenShiftCoreException(e); } IStatus result = rcListenerJob.getResult(); if (result == null) { throw new CoreException(rcListenerJob.getTimeOutStatus()); } else if (!result.isOK()) { throw new CoreException(result); } }