public void succeeded() {
        synchronized (myLock) {
          if (tryChangeToTerminalState(DeploymentStatus.NOT_DEPLOYED, true) || myDeployment.getRuntime() == null) {
            forgetDeployment(myDeployment);

            for (Deployment nextImplicitlyUndeployed : mySubDeployments) {
              if (nextImplicitlyUndeployed != myDeployment) {
                forgetDeployment(nextImplicitlyUndeployed);
              }
            }

            myCachedAllDeployments = null;
          }
        }
      }
public void succeeded()