Program: 167786
Project: 167786
Buggy source:
@Override protected void performRemove(OperationContext context,ModelNode operation,ModelNode model) throws OperationFailedException {
  super.performRemove(context,operation,model);
  final PathAddress address=PathAddress.pathAddress(operation.require(OP_ADDR));
  final String serverName=address.getLastElement().getValue();
  final PathAddress running=address.subAddress(0,1).append(PathElement.pathElement(RUNNING_SERVER,serverName));
  final ModelNode runningServerRemove=new ModelNode();
  runningServerRemove.get(OP).set(REMOVE);
  runningServerRemove.get(OP_ADDR).set(running.toModelNode());
  context.addStep(runningServerRemove,new OperationStepHandler(){
    @Override public void execute(    final OperationContext context,    final ModelNode operation) throws OperationFailedException {
      context.removeResource(PathAddress.EMPTY_ADDRESS);
      context.stepCompleted();
    }
  }
,OperationContext.Stage.IMMEDIATE);
  final ModelNode verifyOp=new ModelNode();
  verifyOp.get(OP).set("String_Node_Str");
  verifyOp.get(OP_ADDR).add(HOST,address.getElement(0).getValue());
  context.addStep(verifyOp,new OperationStepHandler(){
    @Override public void execute(    final OperationContext context,    final ModelNode operation) throws OperationFailedException {
      final PathAddress serverAddress=PathAddress.EMPTY_ADDRESS.append(PathElement.pathElement(SERVER,serverName));
      final ProxyController controller=context.getResourceRegistration().getProxyController(serverAddress);
      if (controller != null) {
        context.getFailureDescription().set(MESSAGES.serverStillRunning(serverName));
      }
      context.stepCompleted();
    }
  }
,OperationContext.Stage.RUNTIME);
}

Fixed version (ground truth):
@Override protected void performRemove(OperationContext context,ModelNode operation,ModelNode model) throws OperationFailedException {
  super.performRemove(context,operation,model);
  final PathAddress address=PathAddress.pathAddress(operation.require(OP_ADDR));
  final String serverName=address.getLastElement().getValue();
  final PathAddress running=address.subAddress(0,1).append(PathElement.pathElement(RUNNING_SERVER,serverName));
  final ModelNode runningServerRemove=new ModelNode();
  runningServerRemove.get(OP).set(REMOVE);
  runningServerRemove.get(OP_ADDR).set(running.toModelNode());
  context.addStep(runningServerRemove,new OperationStepHandler(){
    @Override public void execute(    final OperationContext context,    final ModelNode operation) throws OperationFailedException {
      context.removeResource(PathAddress.EMPTY_ADDRESS);
      context.stepCompleted();
    }
  }
,OperationContext.Stage.MODEL,true);
  final ModelNode verifyOp=new ModelNode();
  verifyOp.get(OP).set("String_Node_Str");
  verifyOp.get(OP_ADDR).add(HOST,address.getElement(0).getValue());
  context.addStep(verifyOp,new OperationStepHandler(){
    @Override public void execute(    final OperationContext context,    final ModelNode operation) throws OperationFailedException {
      final PathAddress serverAddress=PathAddress.EMPTY_ADDRESS.append(PathElement.pathElement(SERVER,serverName));
      final ProxyController controller=context.getResourceRegistration().getProxyController(serverAddress);
      if (controller != null) {
        context.getFailureDescription().set(MESSAGES.serverStillRunning(serverName));
      }
      context.stepCompleted();
    }
  }
,OperationContext.Stage.RUNTIME);
}