Program: 86516
Project: 86516
Buggy source:
@Override public void perform(){
  String warpname=this.argAsString(0);
  String setPassword=null;
  if (this.argAsString(1) != null) {
    setPassword=this.argAsString(1);
  }
 else {
    setPassword="String_Node_Str";
  }
  if (!FactionsPlus.permission.has(sender,"String_Node_Str")) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  Player player=(Player)sender;
  FPlayer fplayer=FPlayers.i.get(sender.getName());
  Faction currentFaction=fplayer.getFaction();
  File currentWarpFile=new File(Config.folderWarps,currentFaction.getId());
  World world;
  if (!Config._warps.warpTeleportAllowedFromEnemyTerritory._ && fplayer.isInEnemyTerritory()) {
    fplayer.msg("String_Node_Str");
    return;
  }
  Location loc=player.getLocation().clone();
  if (Config._warps.warpTeleportAllowedEnemyDistance._ > 0 && !Utilities.isSafeZone(Board.getFactionAt(new FLocation(loc))) && (!fplayer.isInOwnTerritory() || (fplayer.isInOwnTerritory() && !Config._warps.warpTeleportIgnoreEnemiesIfInOwnTerritory._))) {
    World w=loc.getWorld();
    double x=loc.getX();
    double y=loc.getY();
    double z=loc.getZ();
    for (    Player playa : me.getServer().getOnlinePlayers()) {
      if (playa == null || !playa.isOnline() || playa.isDead() || playa == fme || playa.getWorld() != w)       continue;
      FPlayer fp=FPlayers.i.get(playa);
      if (!FactionsAny.Relation.ENEMY.equals(Bridge.factions.getRelationBetween(fplayer,fp))) {
        continue;
      }
      Location l=playa.getLocation();
      double dx=Math.abs(x - l.getX());
      double dy=Math.abs(y - l.getY());
      double dz=Math.abs(z - l.getZ());
      double max=Config._warps.warpTeleportAllowedEnemyDistance._;
      if (dx > max || dy > max || dz > max)       continue;
      fplayer.msg("String_Node_Str" + max + "String_Node_Str");
      return;
    }
  }
  if (!currentWarpFile.exists()) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  FileInputStream fstream=null;
  DataInputStream in=null;
  BufferedReader br=null;
  try {
    fstream=new FileInputStream(currentWarpFile);
    in=new DataInputStream(fstream);
    br=new BufferedReader(new InputStreamReader(in));
    String strLine;
    while ((strLine=br.readLine()) != null) {
      String[] warp_data=strLine.split("String_Node_Str");
      if (warp_data[0].equalsIgnoreCase(warpname)) {
        double x=Double.parseDouble(warp_data[1]);
        double y=Double.parseDouble(warp_data[2]);
        double z=Double.parseDouble(warp_data[3]);
        float Y=Float.parseFloat(warp_data[4]);
        float playa=Float.parseFloat(warp_data[5]);
        world=Bukkit.getServer().getWorld(warp_data[6]);
        if (warp_data.length == 8) {
          if (warp_data[7] != "String_Node_Str") {
            if (!setPassword.trim().equals(warp_data[7].trim())) {
              sender.sendMessage("String_Node_Str");
              return;
            }
          }
        }
        if (Config._economy.costToWarp._ > 0.0d) {
          if (!payForCommand(Config._economy.costToWarp._,"String_Node_Str","String_Node_Str")) {
            return;
          }
        }
        player.sendMessage(ChatColor.RED + "String_Node_Str" + ChatColor.WHITE+ warpname);
        Location newTel=new Location(world,x,y,z,Y,playa);
        if (EssentialsFeatures.handleTeleport(player,newTel))         return;
        if (Config._warps.smokeEffectOnWarp._) {
          List<Location> smokeLocations=new ArrayList<Location>();
          smokeLocations.add(player.getLocation());
          smokeLocations.add(player.getLocation().add(0,1,0));
          smokeLocations.add(newTel);
          smokeLocations.add(newTel.clone().add(0,1,0));
          SmokeUtil.spawnCloudRandom(smokeLocations,3f);
        }
        player.teleport(new Location(world,x,y,z,Y,playa));
        return;
      }
    }
    player.sendMessage("String_Node_Str" + warpname);
  }
 catch (  Exception e) {
    e.printStackTrace();
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
  }
 finally {
    if (null != br) {
      try {
        br.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
    if (null != in) {
      try {
        in.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
    if (null != fstream) {
      try {
        fstream.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
}

Fixed version (ground truth):
@Override public void perform(){
  String warpname=this.argAsString(0);
  String setPassword=null;
  if (this.argAsString(1) != null) {
    setPassword=this.argAsString(1);
  }
 else {
    setPassword="String_Node_Str";
  }
  if (!FactionsPlus.permission.has(sender,"String_Node_Str")) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  Player player=(Player)sender;
  FPlayer fplayer=FPlayers.i.get(sender.getName());
  Faction currentFaction=fplayer.getFaction();
  File currentWarpFile=new File(Config.folderWarps,currentFaction.getId());
  World world;
  if (!Config._warps.warpTeleportAllowedFromEnemyTerritory._ && fplayer.isInEnemyTerritory()) {
    fplayer.msg("String_Node_Str");
    return;
  }
  Location loc=player.getLocation().clone();
  if (Config._warps.warpTeleportAllowedEnemyDistance._ > 0 && !Utilities.isSafeZone(Board.getFactionAt(new FLocation(loc))) && (!fplayer.isInOwnTerritory() || (fplayer.isInOwnTerritory() && !Config._warps.warpTeleportIgnoreEnemiesIfInOwnTerritory._))) {
    World w=loc.getWorld();
    double x=loc.getX();
    double y=loc.getY();
    double z=loc.getZ();
    for (    Player playa : me.getServer().getOnlinePlayers()) {
      if (playa == null || !playa.isOnline() || playa.isDead() || playa.getWorld() != w)       continue;
      FPlayer fp=FPlayers.i.get(playa);
      if (fp.equals(fme)) {
        continue;
      }
      if (!FactionsAny.Relation.ENEMY.equals(Bridge.factions.getRelationBetween(fplayer,fp))) {
        continue;
      }
      Location l=playa.getLocation();
      double dx=Math.abs(x - l.getX());
      double dy=Math.abs(y - l.getY());
      double dz=Math.abs(z - l.getZ());
      double max=Config._warps.warpTeleportAllowedEnemyDistance._;
      if (dx > max || dy > max || dz > max)       continue;
      fplayer.msg("String_Node_Str" + max + "String_Node_Str");
      return;
    }
  }
  if (!currentWarpFile.exists()) {
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
    return;
  }
  FileInputStream fstream=null;
  DataInputStream in=null;
  BufferedReader br=null;
  try {
    fstream=new FileInputStream(currentWarpFile);
    in=new DataInputStream(fstream);
    br=new BufferedReader(new InputStreamReader(in));
    String strLine;
    while ((strLine=br.readLine()) != null) {
      String[] warp_data=strLine.split("String_Node_Str");
      if (warp_data[0].equalsIgnoreCase(warpname)) {
        double x=Double.parseDouble(warp_data[1]);
        double y=Double.parseDouble(warp_data[2]);
        double z=Double.parseDouble(warp_data[3]);
        float Y=Float.parseFloat(warp_data[4]);
        float playa=Float.parseFloat(warp_data[5]);
        world=Bukkit.getServer().getWorld(warp_data[6]);
        if (warp_data.length == 8) {
          if (warp_data[7] != "String_Node_Str") {
            if (!setPassword.trim().equals(warp_data[7].trim())) {
              sender.sendMessage("String_Node_Str");
              return;
            }
          }
        }
        if (Config._economy.costToWarp._ > 0.0d) {
          if (!payForCommand(Config._economy.costToWarp._,"String_Node_Str","String_Node_Str")) {
            return;
          }
        }
        player.sendMessage(ChatColor.RED + "String_Node_Str" + ChatColor.WHITE+ warpname);
        Location newTel=new Location(world,x,y,z,Y,playa);
        if (EssentialsFeatures.handleTeleport(player,newTel))         return;
        if (Config._warps.smokeEffectOnWarp._) {
          List<Location> smokeLocations=new ArrayList<Location>();
          smokeLocations.add(player.getLocation());
          smokeLocations.add(player.getLocation().add(0,1,0));
          smokeLocations.add(newTel);
          smokeLocations.add(newTel.clone().add(0,1,0));
          SmokeUtil.spawnCloudRandom(smokeLocations,3f);
        }
        player.teleport(new Location(world,x,y,z,Y,playa));
        return;
      }
    }
    player.sendMessage("String_Node_Str" + warpname);
  }
 catch (  Exception e) {
    e.printStackTrace();
    sender.sendMessage(ChatColor.RED + "String_Node_Str");
  }
 finally {
    if (null != br) {
      try {
        br.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
    if (null != in) {
      try {
        in.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
    if (null != fstream) {
      try {
        fstream.close();
      }
 catch (      IOException e) {
        e.printStackTrace();
      }
    }
  }
}