Program: 58182
Project: 58182
Buggy source:
public static void clear(final Player requester,final Plot plot){
  PlotWorld plotworld=PlotMain.getWorldSettings(Bukkit.getWorld(plot.world));
  long start=System.currentTimeMillis();
  PlotHelper.setBiome(requester.getWorld(),plot,Biome.FOREST);
  PlotHelper.removeSign(requester,plot);
  PlayerFunctions.sendMessage(requester,C.CLEARING_PLOT);
  World world=requester.getWorld();
  Location pos1=getPlotBottomLoc(world,plot.id);
  Location pos2=getPlotTopLoc(world,plot.id);
  SetBlockFast setBlockClass=null;
  Short[] plotfloors=new Short[plotworld.TOP_BLOCK.length];
  Short[] plotfloors_data=new Short[plotworld.TOP_BLOCK.length];
  Short[] filling=new Short[plotworld.MAIN_BLOCK.length];
  Short[] filling_data=new Short[plotworld.MAIN_BLOCK.length];
  for (int i=0; i < plotworld.TOP_BLOCK.length; i++) {
    Short[] result=getBlock(plotworld.TOP_BLOCK[i]);
    plotfloors[i]=result[0];
    plotfloors_data[i]=result[1];
  }
  for (int i=0; i < plotworld.MAIN_BLOCK.length; i++) {
    Short[] result=getBlock(plotworld.MAIN_BLOCK[i]);
    filling[i]=result[0];
    filling_data[i]=result[1];
  }
  try {
    setBlockClass=new SetBlockFast();
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
  }
 catch (  NoClassDefFoundError e) {
    PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "String_Node_Str");
    PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "String_Node_Str" + Bukkit.getVersion()+ "String_Node_Str");
  }
  if (pos2.getBlockX() - pos1.getBlockX() < 16) {
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    return;
  }
  int startX=(pos1.getBlockX() / 16) * 16;
  int startZ=(pos1.getBlockZ() / 16) * 16;
  int chunkX=16 + pos2.getBlockX();
  int chunkZ=16 + pos2.getBlockZ();
  int plotMinX=getPlotBottomLoc(world,plot.id).getBlockX() + 1;
  int plotMinZ=getPlotBottomLoc(world,plot.id).getBlockZ() + 1;
  int plotMaxX=getPlotTopLoc(world,plot.id).getBlockX();
  int plotMaxZ=getPlotTopLoc(world,plot.id).getBlockZ();
  Location min=null;
  Location max=null;
  for (int i=startX; i < chunkX; i+=16) {
    for (int j=startZ; j < chunkZ; j+=16) {
      Plot plot1=getCurrentPlot(new Location(world,i,0,j));
      if (plot1 != null && plot1.getId() != plot.getId() && plot1.hasOwner()) {
        break;
      }
      Plot plot2=getCurrentPlot(new Location(world,i + 15,0,j));
      if (plot2 != null && plot2.getId() != plot.getId() && plot2.hasOwner()) {
        break;
      }
      Plot plot3=getCurrentPlot(new Location(world,i + 15,0,j + 15));
      if (plot3 != null && plot3.getId() != plot.getId() && plot3.hasOwner()) {
        break;
      }
      Plot plot4=getCurrentPlot(new Location(world,i,0,j + 15));
      if (plot4 != null && plot4.getId() != plot.getId() && plot4.hasOwner()) {
        break;
      }
      Plot plot5=getCurrentPlot(new Location(world,i + 15,0,j + 15));
      if (plot5 != null && plot5.getId() != plot.getId() && plot5.hasOwner()) {
        break;
      }
      if (min == null) {
        min=new Location(world,Math.max(i - 1,plotMinX),0,Math.max(j - 1,plotMinZ));
        max=new Location(world,Math.min(i + 16,plotMaxX),0,Math.min(j + 16,plotMaxZ));
      }
 else       if (max.getBlockZ() < j + 15 || max.getBlockX() < i + 15) {
        max=new Location(world,Math.min(i + 16,plotMaxX),0,Math.min(j + 16,plotMaxZ));
      }
      world.regenerateChunk(i / 16,j / 16);
    }
  }
  if (min == null) {
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
  }
 else {
    int height=world.getMaxHeight();
    regenerateCuboid(new Location(world,plotMinX,0,plotMinZ),new Location(world,min.getBlockX(),height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,min.getBlockX(),0,plotMinZ),new Location(world,max.getBlockX(),height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,plotMinZ),new Location(world,plotMaxX,height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,plotMinX,0,min.getBlockZ()),new Location(world,min.getBlockX(),height,max.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,plotMinX,0,max.getBlockZ()),new Location(world,min.getBlockX(),height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,min.getBlockX(),0,max.getBlockZ()),new Location(world,max.getBlockX(),height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,min.getBlockZ()),new Location(world,plotMaxX,height,max.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,max.getBlockZ()),new Location(world,plotMaxX,height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
  }
  PlayerFunctions.sendMessage(requester,C.CLEARING_DONE.s().replaceAll("String_Node_Str","String_Node_Str" + ((System.currentTimeMillis() - start) / 1000.0)));
  if (setBlockClass != null) {
    SetBlockFast.update(requester);
  }
}

Fixed version (ground truth):
public static void clear(final Player requester,final Plot plot){
  PlotWorld plotworld=PlotMain.getWorldSettings(Bukkit.getWorld(plot.world));
  long start=System.nanoTime();
  PlotHelper.setBiome(requester.getWorld(),plot,Biome.FOREST);
  PlotHelper.removeSign(requester,plot);
  PlayerFunctions.sendMessage(requester,C.CLEARING_PLOT);
  World world=requester.getWorld();
  Location pos1=getPlotBottomLoc(world,plot.id);
  Location pos2=getPlotTopLoc(world,plot.id);
  SetBlockFast setBlockClass=null;
  Short[] plotfloors=new Short[plotworld.TOP_BLOCK.length];
  Short[] plotfloors_data=new Short[plotworld.TOP_BLOCK.length];
  Short[] filling=new Short[plotworld.MAIN_BLOCK.length];
  Short[] filling_data=new Short[plotworld.MAIN_BLOCK.length];
  for (int i=0; i < plotworld.TOP_BLOCK.length; i++) {
    Short[] result=getBlock(plotworld.TOP_BLOCK[i]);
    plotfloors[i]=result[0];
    plotfloors_data[i]=result[1];
  }
  for (int i=0; i < plotworld.MAIN_BLOCK.length; i++) {
    Short[] result=getBlock(plotworld.MAIN_BLOCK[i]);
    filling[i]=result[0];
    filling_data[i]=result[1];
  }
  try {
    setBlockClass=new SetBlockFast();
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    PlayerFunctions.sendMessage(requester,C.CLEARING_DONE.s().replaceAll("String_Node_Str","String_Node_Str" + ((System.nanoTime() - start) / 1000000.0)));
    SetBlockFast.update(requester);
    PlayerFunctions.sendMessage(requester,C.CLEARING_DONE_PACKETS.s().replaceAll("String_Node_Str","String_Node_Str" + ((System.nanoTime() - start) / 1000000.0)));
    return;
  }
 catch (  NoClassDefFoundError e) {
    PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "String_Node_Str");
    PlotMain.sendConsoleSenderMessage(C.PREFIX.s() + "String_Node_Str" + Bukkit.getVersion()+ "String_Node_Str");
  }
  if (pos2.getBlockX() - pos1.getBlockX() < 16) {
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    return;
  }
  int startX=(pos1.getBlockX() / 16) * 16;
  int startZ=(pos1.getBlockZ() / 16) * 16;
  int chunkX=16 + pos2.getBlockX();
  int chunkZ=16 + pos2.getBlockZ();
  int plotMinX=getPlotBottomLoc(world,plot.id).getBlockX() + 1;
  int plotMinZ=getPlotBottomLoc(world,plot.id).getBlockZ() + 1;
  int plotMaxX=getPlotTopLoc(world,plot.id).getBlockX();
  int plotMaxZ=getPlotTopLoc(world,plot.id).getBlockZ();
  Location min=null;
  Location max=null;
  for (int i=startX; i < chunkX; i+=16) {
    for (int j=startZ; j < chunkZ; j+=16) {
      Plot plot1=getCurrentPlot(new Location(world,i,0,j));
      if (plot1 != null && plot1.getId() != plot.getId() && plot1.hasOwner()) {
        break;
      }
      Plot plot2=getCurrentPlot(new Location(world,i + 15,0,j));
      if (plot2 != null && plot2.getId() != plot.getId() && plot2.hasOwner()) {
        break;
      }
      Plot plot3=getCurrentPlot(new Location(world,i + 15,0,j + 15));
      if (plot3 != null && plot3.getId() != plot.getId() && plot3.hasOwner()) {
        break;
      }
      Plot plot4=getCurrentPlot(new Location(world,i,0,j + 15));
      if (plot4 != null && plot4.getId() != plot.getId() && plot4.hasOwner()) {
        break;
      }
      Plot plot5=getCurrentPlot(new Location(world,i + 15,0,j + 15));
      if (plot5 != null && plot5.getId() != plot.getId() && plot5.hasOwner()) {
        break;
      }
      if (min == null) {
        min=new Location(world,Math.max(i - 1,plotMinX),0,Math.max(j - 1,plotMinZ));
        max=new Location(world,Math.min(i + 16,plotMaxX),0,Math.min(j + 16,plotMaxZ));
      }
 else       if (max.getBlockZ() < j + 15 || max.getBlockX() < i + 15) {
        max=new Location(world,Math.min(i + 16,plotMaxX),0,Math.min(j + 16,plotMaxZ));
      }
      world.regenerateChunk(i / 16,j / 16);
    }
  }
  if (min == null) {
    regenerateCuboid(pos1,pos2,requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
  }
 else {
    int height=world.getMaxHeight();
    regenerateCuboid(new Location(world,plotMinX,0,plotMinZ),new Location(world,min.getBlockX(),height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,min.getBlockX(),0,plotMinZ),new Location(world,max.getBlockX(),height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,plotMinZ),new Location(world,plotMaxX,height,min.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,plotMinX,0,min.getBlockZ()),new Location(world,min.getBlockX(),height,max.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,plotMinX,0,max.getBlockZ()),new Location(world,min.getBlockX(),height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,min.getBlockX(),0,max.getBlockZ()),new Location(world,max.getBlockX(),height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,min.getBlockZ()),new Location(world,plotMaxX,height,max.getBlockZ()),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
    regenerateCuboid(new Location(world,max.getBlockX(),0,max.getBlockZ()),new Location(world,plotMaxX,height,plotMaxZ),requester,plotworld,new Object[]{plotfloors,plotfloors_data},new Object[]{filling,filling_data});
  }
  PlayerFunctions.sendMessage(requester,C.CLEARING_DONE.s().replaceAll("String_Node_Str","String_Node_Str" + ((System.currentTimeMillis() - start) / 1000.0)));
}