Program: 48921
Project: 48921
Buggy source:
private void deleteChildRps(String hadoopClusterName,List<BaseNode> vNodes){
  logger.info("String_Node_Str" + hadoopClusterName);
  Map<String,Map<String,VcResourcePool>> clusterMap=new HashMap<String,Map<String,VcResourcePool>>();
  for (  BaseNode node : vNodes) {
    String vcClusterName=node.getTargetVcCluster();
    String vcRpName=node.getTargetRp();
    if (clusterMap.get(vcClusterName) == null) {
      clusterMap.put(vcClusterName,new HashMap<String,VcResourcePool>());
    }
    Map<String,VcResourcePool> rpMap=clusterMap.get(vcClusterName);
    if (rpMap.get(vcRpName) == null) {
      VcResourcePool vcRp=VcResourceUtils.findRPInVCCluster(vcClusterName,vcRpName);
      rpMap.put(vcRpName,vcRp);
    }
  }
  List<VcResourcePool> rps=new ArrayList<VcResourcePool>();
  for (  Map<String,VcResourcePool> map : clusterMap.values()) {
    rps.addAll(map.values());
  }
  Callable<Void>[] storedProcedures=new Callable[rps.size()];
  String childRp=ConfigInfo.getSerengetiUUID() + "String_Node_Str" + hadoopClusterName;
  int i=0;
  for (  VcResourcePool rp : rps) {
    DeleteRpSp sp=new DeleteRpSp(rp,childRp);
    storedProcedures[i]=sp;
    i++;
  }
  try {
    NoProgressUpdateCallback callback=new NoProgressUpdateCallback();
    ExecutionResult[] result=Scheduler.executeStoredProcedures(com.vmware.aurora.composition.concurrent.Priority.BACKGROUND,storedProcedures,callback);
    if (result == null || result.length == 0) {
      logger.error("String_Node_Str");
      return;
    }
    int total=0;
    for (int j=0; j < storedProcedures.length; j++) {
      if (result[j].throwable != null) {
        DeleteRpSp sp=(DeleteRpSp)storedProcedures[j];
        logger.error("String_Node_Str" + sp.getDeleteRpName() + "String_Node_Str"+ sp.getVcRp(),result[j].throwable);
      }
 else {
        total++;
      }
    }
  }
 catch (  Exception e) {
    logger.error("String_Node_Str",e);
    throw BddException.INTERNAL(e,e.getMessage());
  }
}

Fixed version (ground truth):
private void deleteChildRps(String hadoopClusterName,List<BaseNode> vNodes){
  logger.info("String_Node_Str" + hadoopClusterName);
  Map<String,Map<String,VcResourcePool>> clusterMap=new HashMap<String,Map<String,VcResourcePool>>();
  for (  BaseNode node : vNodes) {
    String vcClusterName=node.getTargetVcCluster();
    AuAssert.check(vcClusterName != null);
    String vcRpName=node.getTargetRp();
    if (clusterMap.get(vcClusterName) == null) {
      clusterMap.put(vcClusterName,new HashMap<String,VcResourcePool>());
    }
    Map<String,VcResourcePool> rpMap=clusterMap.get(vcClusterName);
    if (rpMap.get(vcRpName) == null) {
      VcResourcePool vcRp=VcResourceUtils.findRPInVCCluster(vcClusterName,vcRpName);
      if (vcRp != null) {
        rpMap.put(vcRpName,vcRp);
      }
    }
  }
  List<VcResourcePool> rps=new ArrayList<VcResourcePool>();
  for (  Map<String,VcResourcePool> map : clusterMap.values()) {
    rps.addAll(map.values());
  }
  Callable<Void>[] storedProcedures=new Callable[rps.size()];
  String childRp=ConfigInfo.getSerengetiUUID() + "String_Node_Str" + hadoopClusterName;
  int i=0;
  for (  VcResourcePool rp : rps) {
    DeleteRpSp sp=new DeleteRpSp(rp,childRp);
    storedProcedures[i]=sp;
    i++;
  }
  try {
    NoProgressUpdateCallback callback=new NoProgressUpdateCallback();
    ExecutionResult[] result=Scheduler.executeStoredProcedures(com.vmware.aurora.composition.concurrent.Priority.BACKGROUND,storedProcedures,callback);
    if (result == null || result.length == 0) {
      logger.error("String_Node_Str");
      return;
    }
    int total=0;
    for (int j=0; j < storedProcedures.length; j++) {
      if (result[j].throwable != null) {
        DeleteRpSp sp=(DeleteRpSp)storedProcedures[j];
        logger.error("String_Node_Str" + sp.getDeleteRpName() + "String_Node_Str"+ sp.getVcRp(),result[j].throwable);
      }
 else {
        total++;
      }
    }
  }
 catch (  Exception e) {
    logger.error("String_Node_Str",e);
    throw BddException.INTERNAL(e,e.getMessage());
  }
}