private void setState(VirtualMachinePowerState state) { synchronized (lock) { if (runtime.getPowerState().equals(state)) { return; } runtime.setPowerState(state); PowerState powerState = getState(); if (futureState != null && !futureState.isDone()) { futureState.set(powerState); futureState = null; } datacenter.getLog().info("{0} has changed state to {1}", this, powerState); } }