Program: 86487
Project: 86487
Buggy source:
@Override public void performfp(){
  String warpname=this.arg(0);
  if (!FP.permission.has(sender,"String_Node_Str")) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  if (Config._warps.canSetOrRemoveWarps(usender)) {
    msg(ChatColor.RED + "String_Node_Str");
    return;
  }
  try {
    boolean found=false;
    File currentWarpFile=new File(Config.folderWarps,usender.getFactionId());
    File currentWarpFileTMP=new File(Config.folderWarps,usender.getFactionId() + "String_Node_Str");
    FileReader fr=null;
    Scanner scanner=null;
    try {
      fr=new FileReader(currentWarpFile);
      scanner=new Scanner(fr);
      while (scanner.hasNextLine()) {
        String[] warp=scanner.nextLine().split("String_Node_Str");
        if ((warp.length < 1) || (!warp[0].equalsIgnoreCase(warpname))) {
          continue;
        }
        found=true;
        break;
      }
    }
  finally {
      if (null != scanner) {
        scanner.close();
      }
      if (null != fr) {
        try {
          fr.close();
        }
 catch (        IOException e) {
          e.printStackTrace();
        }
      }
    }
    if (!found) {
      return;
    }
    if (Config._economy.costToDeleteWarp._ > 0.0d && Config._economy.isHooked()) {
      if (!Utilities.doFinanceCrap(Config._economy.costToDeleteWarp._,"String_Node_Str",usender)) {
        return;
      }
    }
    PrintWriter wrt=null;
    BufferedReader rdr=null;
    try {
      wrt=new PrintWriter(new FileWriter(currentWarpFileTMP));
      rdr=new BufferedReader(new FileReader(currentWarpFile));
      String line;
      while ((line=rdr.readLine()) != null) {
        String[] warp=line.split("String_Node_Str");
        if ((warp.length >= 1) && (warp[0].equalsIgnoreCase(warpname))) {
          continue;
        }
        wrt.println(line);
      }
    }
  finally {
      if (null != rdr) {
        try {
          rdr.close();
        }
 catch (        IOException e) {
          e.printStackTrace();
        }
      }
      if (null != wrt) {
        wrt.close();
      }
    }
    if (!currentWarpFile.delete()) {
      FPP.severe("String_Node_Str" + currentWarpFile.getName());
      return;
    }
    if (!currentWarpFileTMP.renameTo(currentWarpFile)) {
      FPP.severe("String_Node_Str" + currentWarpFileTMP.getName() + "String_Node_Str"+ currentWarpFile.getName());
      return;
    }
  }
 catch (  Exception e) {
    FPP.info("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  String[] warped_removed_args={warpname};
  msg(FactionsPlusTemplates.Go("String_Node_Str",warped_removed_args));
}

Fixed version (ground truth):
@Override public void performfp(){
  String warpname=this.arg(0);
  if (!FP.permission.has(sender,"String_Node_Str")) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  if (!Section_Warps.canSetOrRemoveWarps(usender)) {
    msg(ChatColor.RED + "String_Node_Str");
    return;
  }
  try {
    boolean found=false;
    File currentWarpFile=new File(Config.folderWarps,usender.getFactionId());
    File currentWarpFileTMP=new File(Config.folderWarps,usender.getFactionId() + "String_Node_Str");
    FileReader fr=null;
    Scanner scanner=null;
    try {
      fr=new FileReader(currentWarpFile);
      scanner=new Scanner(fr);
      while (scanner.hasNextLine()) {
        String[] warp=scanner.nextLine().split("String_Node_Str");
        if ((warp.length < 1) || (!warp[0].equalsIgnoreCase(warpname))) {
          continue;
        }
        found=true;
        break;
      }
    }
  finally {
      if (null != scanner) {
        scanner.close();
      }
      if (null != fr) {
        try {
          fr.close();
        }
 catch (        IOException e) {
          e.printStackTrace();
        }
      }
    }
    if (!found) {
      return;
    }
    if (Config._economy.costToDeleteWarp._ > 0.0d && Config._economy.isHooked()) {
      if (!Utilities.doFinanceCrap(Config._economy.costToDeleteWarp._,"String_Node_Str",usender)) {
        return;
      }
    }
    PrintWriter wrt=null;
    BufferedReader rdr=null;
    try {
      wrt=new PrintWriter(new FileWriter(currentWarpFileTMP));
      rdr=new BufferedReader(new FileReader(currentWarpFile));
      String line;
      while ((line=rdr.readLine()) != null) {
        String[] warp=line.split("String_Node_Str");
        if ((warp.length >= 1) && (warp[0].equalsIgnoreCase(warpname))) {
          continue;
        }
        wrt.println(line);
      }
    }
  finally {
      if (null != rdr) {
        try {
          rdr.close();
        }
 catch (        IOException e) {
          e.printStackTrace();
        }
      }
      if (null != wrt) {
        wrt.close();
      }
    }
    if (!currentWarpFile.delete()) {
      FPP.severe("String_Node_Str" + currentWarpFile.getName());
      return;
    }
    if (!currentWarpFileTMP.renameTo(currentWarpFile)) {
      FPP.severe("String_Node_Str" + currentWarpFileTMP.getName() + "String_Node_Str"+ currentWarpFile.getName());
      return;
    }
  }
 catch (  Exception e) {
    FPP.info("String_Node_Str" + e.getMessage());
    e.printStackTrace();
    return;
  }
  String[] warped_removed_args={warpname};
  msg(FactionsPlusTemplates.Go("String_Node_Str",warped_removed_args));
}