private synchronized void establishModelControllerClient(ControlledProcessState.State state) { ModelControllerClient newClient = null; if (state != ControlledProcessState.State.STOPPING && serviceContainer != null) { @SuppressWarnings("unchecked") final Value<ModelController> controllerService = (Value<ModelController>) serviceContainer.getService(Services.JBOSS_SERVER_CONTROLLER); if (controllerService != null) { final ModelController controller = controllerService.getValue(); newClient = controller.createClient(executorService); } // else TODO use some sort of timeout and poll. A non-stopping server should install a // ModelController very quickly } modelControllerClient = newClient; currentProcessState = state; }