Program: 105643
Project: 105643
Buggy source:
protected String handleVmStartFailure(Connection conn,String vmName,VM vm,String message,Throwable th){
  String msg="String_Node_Str" + vmName + "String_Node_Str"+ message;
  s_logger.warn(msg,th);
  if (vm == null) {
    return msg;
  }
  try {
    VM.Record vmr=vm.getRecord(conn);
    List<Network> networks=new ArrayList<Network>();
    for (    VIF vif : vmr.VIFs) {
      try {
        VIF.Record rec=vif.getRecord(conn);
        networks.add(rec.network);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    if (vmr.powerState == VmPowerState.RUNNING) {
      try {
        vm.hardShutdown(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    if (vm.getPowerState(conn) == VmPowerState.HALTED) {
      try {
        vm.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    VBD vbd : vmr.VBDs) {
      try {
        vbd.unplug(conn);
        vbd.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    VIF vif : vmr.VIFs) {
      try {
        vif.unplug(conn);
        vif.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    Network network : networks) {
      if (network.getNameLabel(conn).startsWith("String_Node_Str")) {
        disableVlanNetwork(conn,network);
      }
    }
  }
 catch (  Exception e) {
    s_logger.warn("String_Node_Str",e);
  }
  return msg;
}

Fixed version (ground truth):
protected String handleVmStartFailure(Connection conn,String vmName,VM vm,String message,Throwable th){
  String msg="String_Node_Str" + vmName + "String_Node_Str"+ message;
  s_logger.warn(msg,th);
  if (vm == null) {
    return msg;
  }
  try {
    VM.Record vmr=vm.getRecord(conn);
    List<Network> networks=new ArrayList<Network>();
    for (    VIF vif : vmr.VIFs) {
      try {
        VIF.Record rec=vif.getRecord(conn);
        if (rec != null) {
          networks.add(rec.network);
        }
 else {
          s_logger.warn("String_Node_Str" + vif.toWireString() + "String_Node_Str");
        }
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    if (vmr.powerState == VmPowerState.RUNNING) {
      try {
        vm.hardShutdown(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    if (vm.getPowerState(conn) == VmPowerState.HALTED) {
      try {
        vm.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    VBD vbd : vmr.VBDs) {
      try {
        vbd.unplug(conn);
        vbd.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    VIF vif : vmr.VIFs) {
      try {
        vif.unplug(conn);
        vif.destroy(conn);
      }
 catch (      Exception e) {
        s_logger.warn("String_Node_Str",e);
      }
    }
    for (    Network network : networks) {
      if (network.getNameLabel(conn).startsWith("String_Node_Str")) {
        disableVlanNetwork(conn,network);
      }
    }
  }
 catch (  Exception e) {
    s_logger.warn("String_Node_Str",e);
  }
  return msg;
}