Program: 58076
Project: 58076
Buggy source:
public static void runTask(){
  ExpireManager.task=Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotMain.getMain(),new Runnable(){
    @Override public void run(){
      for (      String world : PlotMain.getPlotWorldsString()) {
        if (!ExpireManager.updatingPlots.containsKey(world)) {
          ExpireManager.updatingPlots.put(world,false);
        }
        Boolean updating=ExpireManager.updatingPlots.get(world);
        if (updating) {
          return;
        }
        if (!expiredPlots.containsKey(world)) {
          updateExpired(world);
          return;
        }
        Set<Plot> plots=expiredPlots.get(world).keySet();
        if (plots == null || plots.size() == 0) {
          if (updateExpired(world)) {
            return;
          }
          continue;
        }
        Plot plot=plots.iterator().next();
        if (plot.owner != null) {
          if (UUIDHandler.uuidWrapper.getPlayer(plot.owner) != null) {
            expiredPlots.get(world).remove(plot);
            return;
          }
        }
        if (!isExpired(plot.owner)) {
          expiredPlots.get(world).remove(plot);
          return;
        }
        final PlotDeleteEvent event=new PlotDeleteEvent(world,plot.id);
        Bukkit.getServer().getPluginManager().callEvent(event);
        if (event.isCancelled()) {
          event.setCancelled(true);
          return;
        }
        for (        UUID helper : plot.helpers) {
          Player player=UUIDHandler.uuidWrapper.getPlayer(helper);
          if (player != null) {
            PlayerFunctions.sendMessage(player,C.PLOT_REMOVED_HELPER,plot.id.toString());
          }
        }
        final World worldobj=Bukkit.getWorld(world);
        final PlotManager manager=PlotMain.getPlotManager(world);
        manager.clearPlot(worldobj,plot,false);
        PlotHelper.removeSign(worldobj,plot);
        DBFunc.delete(world,plot);
        PlotMain.removePlot(world,plot.id,true);
        expiredPlots.get(world).remove(plot);
        PlotMain.sendConsoleSenderMessage("String_Node_Str" + plot.id);
        PlotMain.sendConsoleSenderMessage("String_Node_Str" + plot.world);
        if (plot.hasOwner()) {
          PlotMain.sendConsoleSenderMessage("String_Node_Str" + UUIDHandler.getName(plot.owner));
        }
 else {
          PlotMain.sendConsoleSenderMessage("String_Node_Str");
        }
        return;
      }
    }
  }
,2400,2400);
}

Fixed version (ground truth):
public static void runTask(){
  ExpireManager.task=Bukkit.getScheduler().scheduleSyncRepeatingTask(PlotMain.getMain(),new Runnable(){
    @Override public void run(){
      for (      String world : PlotMain.getPlotWorldsString()) {
        if (!ExpireManager.updatingPlots.containsKey(world)) {
          ExpireManager.updatingPlots.put(world,false);
        }
        Boolean updating=ExpireManager.updatingPlots.get(world);
        if (updating) {
          return;
        }
        if (!expiredPlots.containsKey(world)) {
          updateExpired(world);
          return;
        }
        Set<Plot> plots=expiredPlots.get(world).keySet();
        if (plots == null || plots.size() == 0) {
          if (updateExpired(world)) {
            return;
          }
          continue;
        }
        Plot plot=plots.iterator().next();
        if (plot.owner != null) {
          if (UUIDHandler.uuidWrapper.getPlayer(plot.owner) != null) {
            expiredPlots.get(world).remove(plot);
            return;
          }
        }
        if (!isExpired(plot.owner)) {
          expiredPlots.get(world).remove(plot);
          return;
        }
        final PlotDeleteEvent event=new PlotDeleteEvent(world,plot.id);
        Bukkit.getServer().getPluginManager().callEvent(event);
        if (event.isCancelled()) {
          event.setCancelled(true);
          return;
        }
        for (        UUID helper : plot.helpers) {
          Player player=UUIDHandler.uuidWrapper.getPlayer(helper);
          if (player != null) {
            PlayerFunctions.sendMessage(player,C.PLOT_REMOVED_HELPER,plot.id.toString());
          }
        }
        final World worldobj=Bukkit.getWorld(world);
        final PlotManager manager=PlotMain.getPlotManager(world);
        if (plot.settings.isMerged()) {
          Unlink.unlinkPlot(Bukkit.getWorld(world),plot);
        }
        manager.clearPlot(worldobj,plot,false);
        PlotHelper.removeSign(worldobj,plot);
        DBFunc.delete(world,plot);
        PlotMain.removePlot(world,plot.id,true);
        expiredPlots.get(world).remove(plot);
        PlotMain.sendConsoleSenderMessage("String_Node_Str" + plot.id);
        PlotMain.sendConsoleSenderMessage("String_Node_Str" + plot.world);
        if (plot.hasOwner()) {
          PlotMain.sendConsoleSenderMessage("String_Node_Str" + UUIDHandler.getName(plot.owner));
        }
 else {
          PlotMain.sendConsoleSenderMessage("String_Node_Str");
        }
        return;
      }
    }
  }
,2400,2400);
}