Program: 58081
Project: 58081
Buggy source:
public void runAsync() throws Exception {
  Bukkit.getScheduler().runTaskLater(this.plugin,new Runnable(){
    @Override public void run(){
      try {
        sendMessage("String_Node_Str");
        sendMessage("String_Node_Str");
        final ArrayList<Plot> createdPlots=new ArrayList<>();
        final Plugin plotMePlugin=Bukkit.getPluginManager().getPlugin("String_Node_Str");
        final FileConfiguration plotConfig=plotMePlugin.getConfig();
        int count=0;
        Connection connection;
        if (plotConfig.getBoolean("String_Node_Str")) {
          String user=plotConfig.getString("String_Node_Str");
          String password=plotConfig.getString("String_Node_Str");
          String con=plotConfig.getString("String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
          String host=con.split("String_Node_Str")[0];
          String port=con.split("String_Node_Str")[1].split("String_Node_Str")[0];
          String database=con.split("String_Node_Str")[1].split("String_Node_Str")[1];
          MySQL mySQL=new MySQL(PlotMain.getMain(),host,port,database,user,password);
          connection=mySQL.openConnection();
        }
 else {
          connection=new SQLite(PlotMain.getMain(),plotMePlugin.getDataFolder() + File.separator + "String_Node_Str").openConnection();
        }
        sendMessage("String_Node_Str");
        ResultSet r;
        Statement stmt;
        HashMap<String,Integer> plotSize=new HashMap<>();
        HashMap<String,HashMap<PlotId,Plot>> plots=new HashMap<>();
        Set<String> worlds=plotConfig.getConfigurationSection("String_Node_Str").getKeys(false);
        stmt=connection.createStatement();
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          String world=r.getString("String_Node_Str");
          if (!plotSize.containsKey(world)) {
            int size=r.getInt("String_Node_Str") - r.getInt("String_Node_Str");
            plotSize.put(world,size);
            plots.put(world,new HashMap<PlotId,Plot>());
          }
          UUID owner=UUIDHandler.getUUID(name);
          if (owner == null) {
            if (name.equals("String_Node_Str")) {
              owner=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          Plot plot=new Plot(id,owner,new ArrayList<UUID>(),new ArrayList<UUID>(),world);
          plots.get(world).put(id,plot);
        }
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          count++;
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          String world=r.getString("String_Node_Str");
          UUID helper=UUIDHandler.getUUID(name);
          if (helper == null) {
            if (name.equals("String_Node_Str")) {
              helper=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          if (plots.get(world).containsKey(id)) {
            plots.get(world).get(id).helpers.add(helper);
          }
        }
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          String world=r.getString("String_Node_Str");
          UUID denied=UUIDHandler.getUUID(name);
          if (denied == null) {
            if (name.equals("String_Node_Str")) {
              denied=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          if (plots.get(world).containsKey(id)) {
            plots.get(world).get(id).denied.add(denied);
          }
        }
        sendMessage("String_Node_Str" + count + "String_Node_Str");
        for (        String world : plots.keySet()) {
          sendMessage("String_Node_Str" + world);
          try {
            final Integer pathwidth=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",pathwidth);
            final Integer plotsize=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",plotsize);
            final String wallblock=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",wallblock);
            final String floor=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(floor));
            final String filling=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(filling));
            final String road=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",road);
            final Integer height=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",height);
          }
 catch (          final Exception e) {
            sendMessage("String_Node_Str" + world + "String_Node_Str");
          }
        }
        File PLOTME_DG_FILE=new File(plotMePlugin + File.separator + "String_Node_Str"+ File.separator+ "String_Node_Str");
        if (PLOTME_DG_FILE.exists()) {
          YamlConfiguration PLOTME_DG_YML=YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
          try {
            for (            String world : plots.keySet()) {
              final Integer pathwidth=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",pathwidth);
              final Integer plotsize=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",plotsize);
              final String wallblock=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",wallblock);
              final String floor=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(floor));
              final String filling=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(filling));
              final String road=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",road);
              final Integer height=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",height);
            }
          }
 catch (          Exception e) {
          }
        }
        for (        String world : plots.keySet()) {
          int duplicate=0;
          for (          Plot plot : plots.get(world).values()) {
            if (!PlotMain.getPlots(world).containsKey(plot.id)) {
              createdPlots.add(plot);
            }
 else {
              duplicate++;
            }
          }
          if (duplicate > 0) {
            PlotMain.sendConsoleSenderMessage("String_Node_Str" + duplicate + "String_Node_Str"+ world+ "String_Node_Str");
          }
        }
        sendMessage("String_Node_Str");
        DBFunc.createPlots(createdPlots);
        sendMessage("String_Node_Str");
        DBFunc.createAllSettingsAndHelpers(createdPlots);
        sendMessage("String_Node_Str");
        try {
          PlotMain.config.save(PlotMain.configFile);
        }
 catch (        final IOException e) {
          sendMessage("String_Node_Str");
        }
        boolean MV=false;
        boolean MW=false;
        if ((Bukkit.getPluginManager().getPlugin("String_Node_Str") != null) && Bukkit.getPluginManager().getPlugin("String_Node_Str").isEnabled()) {
          MV=true;
        }
 else         if ((Bukkit.getPluginManager().getPlugin("String_Node_Str") != null) && Bukkit.getPluginManager().getPlugin("String_Node_Str").isEnabled()) {
          MW=true;
        }
        for (        final String worldname : worlds) {
          final World world=Bukkit.getWorld(worldname);
          sendMessage("String_Node_Str" + worldname + "String_Node_Str");
          PlotMain.removePlotWorld(worldname);
          if (MV) {
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname);
            try {
              Thread.sleep(1000);
            }
 catch (            final InterruptedException ex) {
              Thread.currentThread().interrupt();
            }
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname + "String_Node_Str");
          }
 else           if (MW) {
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname);
            try {
              Thread.sleep(1000);
            }
 catch (            final InterruptedException ex) {
              Thread.currentThread().interrupt();
            }
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname + "String_Node_Str");
          }
 else {
            Bukkit.getServer().unloadWorld(world,true);
            final World myworld=WorldCreator.name(worldname).generator(new HybridGen(worldname)).createWorld();
            myworld.save();
          }
        }
        PlotMain.setAllPlotsRaw(DBFunc.getPlots());
        sendMessage("String_Node_Str");
        Bukkit.getPluginManager().disablePlugin(plotMePlugin);
        sendMessage("String_Node_Str");
        PlotMain.sendConsoleSenderMessage("String_Node_Str");
      }
 catch (      Exception e) {
        e.printStackTrace();
      }
    }
  }
,20);
}

Fixed version (ground truth):
public void runAsync() throws Exception {
  Bukkit.getScheduler().runTaskLater(this.plugin,new Runnable(){
    @Override public void run(){
      try {
        sendMessage("String_Node_Str");
        sendMessage("String_Node_Str");
        final ArrayList<Plot> createdPlots=new ArrayList<>();
        final Plugin plotMePlugin=Bukkit.getPluginManager().getPlugin("String_Node_Str");
        final FileConfiguration plotConfig=plotMePlugin.getConfig();
        int count=0;
        Connection connection;
        if (plotConfig.getBoolean("String_Node_Str")) {
          String user=plotConfig.getString("String_Node_Str");
          String password=plotConfig.getString("String_Node_Str");
          String con=plotConfig.getString("String_Node_Str").replaceAll("String_Node_Str","String_Node_Str");
          String host=con.split("String_Node_Str")[0];
          String port=con.split("String_Node_Str")[1].split("String_Node_Str")[0];
          String database=con.split("String_Node_Str")[1].split("String_Node_Str")[1];
          MySQL mySQL=new MySQL(PlotMain.getMain(),host,port,database,user,password);
          connection=mySQL.openConnection();
        }
 else {
          connection=new SQLite(PlotMain.getMain(),plotMePlugin.getDataFolder() + File.separator + "String_Node_Str").openConnection();
        }
        sendMessage("String_Node_Str");
        ResultSet r;
        Statement stmt;
        HashMap<String,Integer> plotSize=new HashMap<>();
        HashMap<String,HashMap<PlotId,Plot>> plots=new HashMap<>();
        Set<String> worlds=plotConfig.getConfigurationSection("String_Node_Str").getKeys(false);
        stmt=connection.createStatement();
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          System.out.print("String_Node_Str" + name);
          String world=r.getString("String_Node_Str");
          if (!plotSize.containsKey(world)) {
            int size=r.getInt("String_Node_Str") - r.getInt("String_Node_Str");
            plotSize.put(world,size);
            plots.put(world,new HashMap<PlotId,Plot>());
          }
          UUID owner=UUIDHandler.getUUID(name);
          if (owner == null) {
            if (name.equals("String_Node_Str")) {
              owner=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          Plot plot=new Plot(id,owner,new ArrayList<UUID>(),new ArrayList<UUID>(),world);
          plots.get(world).put(id,plot);
        }
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          count++;
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          String world=r.getString("String_Node_Str");
          UUID helper=UUIDHandler.getUUID(name);
          if (helper == null) {
            if (name.equals("String_Node_Str")) {
              helper=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          if (plots.get(world).containsKey(id)) {
            plots.get(world).get(id).helpers.add(helper);
          }
        }
        r=stmt.executeQuery("String_Node_Str");
        while (r.next()) {
          PlotId id=new PlotId(r.getInt("String_Node_Str"),r.getInt("String_Node_Str"));
          String name=r.getString("String_Node_Str");
          String world=r.getString("String_Node_Str");
          UUID denied=UUIDHandler.getUUID(name);
          if (denied == null) {
            if (name.equals("String_Node_Str")) {
              denied=DBFunc.everyone;
            }
 else {
              sendMessage("String_Node_Str" + id);
              continue;
            }
          }
          if (plots.get(world).containsKey(id)) {
            plots.get(world).get(id).denied.add(denied);
          }
        }
        sendMessage("String_Node_Str" + count + "String_Node_Str");
        for (        String world : plots.keySet()) {
          sendMessage("String_Node_Str" + world);
          try {
            final Integer pathwidth=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",pathwidth);
            final Integer plotsize=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",plotsize);
            final String wallblock=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",wallblock);
            final String floor=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(floor));
            final String filling=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(filling));
            final String road=plotConfig.getString("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",road);
            final Integer height=plotConfig.getInt("String_Node_Str" + world + "String_Node_Str");
            PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",height);
          }
 catch (          final Exception e) {
            sendMessage("String_Node_Str" + world + "String_Node_Str");
          }
        }
        File PLOTME_DG_FILE=new File(plotMePlugin + File.separator + "String_Node_Str"+ File.separator+ "String_Node_Str");
        if (PLOTME_DG_FILE.exists()) {
          YamlConfiguration PLOTME_DG_YML=YamlConfiguration.loadConfiguration(PLOTME_DG_FILE);
          try {
            for (            String world : plots.keySet()) {
              final Integer pathwidth=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",pathwidth);
              final Integer plotsize=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",plotsize);
              final String wallblock=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",wallblock);
              final String floor=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(floor));
              final String filling=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",Arrays.asList(filling));
              final String road=PLOTME_DG_YML.getString("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",road);
              final Integer height=PLOTME_DG_YML.getInt("String_Node_Str" + world + "String_Node_Str");
              PlotMain.config.set("String_Node_Str" + world + "String_Node_Str",height);
            }
          }
 catch (          Exception e) {
          }
        }
        for (        String world : plots.keySet()) {
          int duplicate=0;
          for (          Plot plot : plots.get(world).values()) {
            if (!PlotMain.getPlots(world).containsKey(plot.id)) {
              createdPlots.add(plot);
            }
 else {
              duplicate++;
            }
          }
          if (duplicate > 0) {
            PlotMain.sendConsoleSenderMessage("String_Node_Str" + duplicate + "String_Node_Str"+ world+ "String_Node_Str");
          }
        }
        sendMessage("String_Node_Str");
        DBFunc.createPlots(createdPlots);
        sendMessage("String_Node_Str");
        DBFunc.createAllSettingsAndHelpers(createdPlots);
        sendMessage("String_Node_Str");
        try {
          PlotMain.config.save(PlotMain.configFile);
        }
 catch (        final IOException e) {
          sendMessage("String_Node_Str");
        }
        boolean MV=false;
        boolean MW=false;
        if ((Bukkit.getPluginManager().getPlugin("String_Node_Str") != null) && Bukkit.getPluginManager().getPlugin("String_Node_Str").isEnabled()) {
          MV=true;
        }
 else         if ((Bukkit.getPluginManager().getPlugin("String_Node_Str") != null) && Bukkit.getPluginManager().getPlugin("String_Node_Str").isEnabled()) {
          MW=true;
        }
        for (        final String worldname : worlds) {
          final World world=Bukkit.getWorld(worldname);
          sendMessage("String_Node_Str" + worldname + "String_Node_Str");
          PlotMain.removePlotWorld(worldname);
          if (MV) {
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname);
            try {
              Thread.sleep(1000);
            }
 catch (            final InterruptedException ex) {
              Thread.currentThread().interrupt();
            }
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname + "String_Node_Str");
          }
 else           if (MW) {
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname);
            try {
              Thread.sleep(1000);
            }
 catch (            final InterruptedException ex) {
              Thread.currentThread().interrupt();
            }
            Bukkit.getServer().dispatchCommand(Bukkit.getServer().getConsoleSender(),"String_Node_Str" + worldname + "String_Node_Str");
          }
 else {
            Bukkit.getServer().unloadWorld(world,true);
            final World myworld=WorldCreator.name(worldname).generator(new HybridGen(worldname)).createWorld();
            myworld.save();
          }
        }
        PlotMain.setAllPlotsRaw(DBFunc.getPlots());
        sendMessage("String_Node_Str");
        Bukkit.getPluginManager().disablePlugin(plotMePlugin);
        sendMessage("String_Node_Str");
        PlotMain.sendConsoleSenderMessage("String_Node_Str");
      }
 catch (      Exception e) {
        e.printStackTrace();
      }
    }
  }
,20);
}