Program: 113413
Project: 113413
Buggy source:
@Override public void startRequest(final MRCRequest rq) throws Throwable {
  String replMasterUUID=master.getReplMasterUUID();
  if (replMasterUUID != null && !replMasterUUID.equals(master.getConfig().getUUID().toString())) {
    ServiceUUID uuid=new ServiceUUID(replMasterUUID);
    throw new DatabaseException(ExceptionType.REDIRECT,uuid.getAddress().getHostName() + "String_Node_Str" + uuid.getAddress().getPort());
  }
  final xtreemfs_rmvolRequest rqArgs=(xtreemfs_rmvolRequest)rq.getRequestArgs();
  if (master.getConfig().getAdminPassword().length() > 0 && !master.getConfig().getAdminPassword().equals(rq.getDetails().password))   throw new UserException(POSIXErrno.POSIX_ERROR_EPERM,"String_Node_Str");
  final StorageManager sMan=master.getVolumeManager().getStorageManagerByName(rqArgs.getVolumeName());
  final VolumeInfo volume=sMan.getVolumeInfo();
  FileMetadata file=sMan.getMetadata(0,volume.getName());
  if (master.getConfig().getAdminPassword().length() != 0)   master.getFileAccessManager().checkPrivilegedPermissions(sMan,file,rq.getDetails().userId,rq.getDetails().superUser,rq.getDetails().groupIds);
  try {
    master.pauseHeartbeatThread();
  }
 catch (  InterruptedException ex) {
    finishRequest(rq,new ErrorRecord(ErrorType.INTERNAL_SERVER_ERROR,POSIXErrno.POSIX_ERROR_NONE,"String_Node_Str",ex));
  }
  Runnable rqThr=new Runnable(){
    @Override public void run(){
      try {
        master.getDirClient().xtreemfs_service_deregister(null,rq.getDetails().auth,RPCAuthentication.userService,volume.getId());
        processStep2(rqArgs,volume.getId(),rq);
      }
 catch (      Exception ex) {
        master.resumeHeartbeatThread();
        finishRequest(rq,new ErrorRecord(ErrorType.INTERNAL_SERVER_ERROR,POSIXErrno.POSIX_ERROR_NONE,"String_Node_Str",ex));
      }
    }
  }
;
  Thread thr=new Thread(rqThr);
  thr.start();
}

Fixed version (ground truth):
@Override public void startRequest(final MRCRequest rq) throws Throwable {
  String replMasterUUID=master.getReplMasterUUID();
  if (replMasterUUID != null && !replMasterUUID.equals(master.getConfig().getUUID().toString())) {
    ServiceUUID uuid=new ServiceUUID(replMasterUUID);
    throw new DatabaseException(ExceptionType.REDIRECT,uuid.getAddress().getHostName() + "String_Node_Str" + uuid.getAddress().getPort());
  }
  final xtreemfs_rmvolRequest rqArgs=(xtreemfs_rmvolRequest)rq.getRequestArgs();
  if (master.getConfig().getAdminPassword().length() > 0 && !master.getConfig().getAdminPassword().equals(rq.getDetails().password))   throw new UserException(POSIXErrno.POSIX_ERROR_EPERM,"String_Node_Str");
  final StorageManager sMan=master.getVolumeManager().getStorageManagerByName(rqArgs.getVolumeName());
  final VolumeInfo volume=sMan.getVolumeInfo();
  FileMetadata file=sMan.getMetadata(0,volume.getName());
  if (master.getConfig().getAdminPassword().length() == 0)   master.getFileAccessManager().checkPrivilegedPermissions(sMan,file,rq.getDetails().userId,rq.getDetails().superUser,rq.getDetails().groupIds);
  try {
    master.pauseHeartbeatThread();
  }
 catch (  InterruptedException ex) {
    finishRequest(rq,new ErrorRecord(ErrorType.INTERNAL_SERVER_ERROR,POSIXErrno.POSIX_ERROR_NONE,"String_Node_Str",ex));
  }
  Runnable rqThr=new Runnable(){
    @Override public void run(){
      try {
        master.getDirClient().xtreemfs_service_deregister(null,rq.getDetails().auth,RPCAuthentication.userService,volume.getId());
        processStep2(rqArgs,volume.getId(),rq);
      }
 catch (      Exception ex) {
        master.resumeHeartbeatThread();
        finishRequest(rq,new ErrorRecord(ErrorType.INTERNAL_SERVER_ERROR,POSIXErrno.POSIX_ERROR_NONE,"String_Node_Str",ex));
      }
    }
  }
;
  Thread thr=new Thread(rqThr);
  thr.start();
}