Program: 134036
Project: 134036
Buggy source:
@SuppressWarnings("String_Node_Str") public boolean progress(){
  if (player.isDead() || !player.isOnline()) {
    remove();
    return false;
  }
  if (GeneralMethods.isRegionProtectedFromBuild(player,"String_Node_Str",location)) {
    remove();
    return false;
  }
  speedfactor=speed * (ProjectKorra.time_step / 1000.);
  ticks++;
  if (ticks > maxticks) {
    remove();
    return false;
  }
  Block block=location.getBlock();
  for (  Block testblock : GeneralMethods.getBlocksAroundPoint(location,affectingradius)) {
    if (testblock.getType() == Material.FIRE) {
      testblock.setType(Material.AIR);
      testblock.getWorld().playEffect(testblock.getLocation(),Effect.EXTINGUISH,0);
    }
    Material doorTypes[]={Material.WOODEN_DOOR,Material.SPRUCE_DOOR,Material.BIRCH_DOOR,Material.JUNGLE_DOOR,Material.ACACIA_DOOR,Material.DARK_OAK_DOOR};
    if (Arrays.asList(doorTypes).contains(block.getType())) {
      if (block.getData() >= 8) {
        block=block.getRelative(BlockFace.DOWN);
      }
      if (block.getData() < 4) {
        block.setData((byte)(block.getData() + 4));
        block.getWorld().playSound(block.getLocation(),Sound.DOOR_CLOSE,10,1);
      }
 else {
        block.setData((byte)(block.getData() - 4));
        block.getWorld().playSound(block.getLocation(),Sound.DOOR_OPEN,10,1);
      }
    }
    if ((block.getType() == Material.LEVER) && !affectedlevers.contains(block)) {
      Lever lever=new Lever(Material.LEVER,block.getData());
      lever.setPowered(!lever.isPowered());
      block.setData(lever.getData());
      Block supportBlock=block.getRelative(lever.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      affectedlevers.add(block);
    }
 else     if ((block.getType() == Material.STONE_BUTTON) && !affectedlevers.contains(block)) {
      final Button button=new Button(Material.STONE_BUTTON,block.getData());
      button.setPowered(!button.isPowered());
      block.setData(button.getData());
      Block supportBlock=block.getRelative(button.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      final Block btBlock=block;
      new BukkitRunnable(){
        public void run(){
          button.setPowered(!button.isPowered());
          btBlock.setData(button.getData());
          Block supportBlock=btBlock.getRelative(button.getAttachedFace());
          if (supportBlock != null && supportBlock.getType() != Material.AIR) {
            BlockState initialSupportState=supportBlock.getState();
            BlockState supportState=supportBlock.getState();
            supportState.setType(Material.AIR);
            supportState.update(true,false);
            initialSupportState.update(true);
          }
        }
      }
.runTaskLater(ProjectKorra.plugin,10);
      affectedlevers.add(block);
    }
 else     if ((block.getType() == Material.WOOD_BUTTON) && !affectedlevers.contains(block)) {
      final Button button=new Button(Material.WOOD_BUTTON,block.getData());
      button.setPowered(!button.isPowered());
      block.setData(button.getData());
      Block supportBlock=block.getRelative(button.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      final Block btBlock=block;
      new BukkitRunnable(){
        public void run(){
          button.setPowered(!button.isPowered());
          btBlock.setData(button.getData());
          Block supportBlock=btBlock.getRelative(button.getAttachedFace());
          if (supportBlock != null && supportBlock.getType() != Material.AIR) {
            BlockState initialSupportState=supportBlock.getState();
            BlockState supportState=supportBlock.getState();
            supportState.setType(Material.AIR);
            supportState.update(true,false);
            initialSupportState.update(true);
          }
        }
      }
.runTaskLater(ProjectKorra.plugin,15);
      affectedlevers.add(block);
    }
  }
  if ((GeneralMethods.isSolid(block) || block.isLiquid()) && !affectedlevers.contains(block)) {
    if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) {
      if (block.getData() == full) {
        block.setType(Material.OBSIDIAN);
      }
 else {
        block.setType(Material.COBBLESTONE);
      }
    }
    remove();
    return false;
  }
  double dist=location.distance(origin);
  if (Double.isNaN(dist) || dist > range) {
    remove();
    return false;
  }
  for (  Entity entity : GeneralMethods.getEntitiesAroundPoint(location,affectingradius)) {
    affect(entity);
  }
  advanceLocation();
  return true;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public boolean progress(){
  if (player.isDead() || !player.isOnline()) {
    remove();
    return false;
  }
  if (GeneralMethods.isRegionProtectedFromBuild(player,"String_Node_Str",location)) {
    remove();
    return false;
  }
  speedfactor=speed * (ProjectKorra.time_step / 1000.);
  ticks++;
  if (ticks > maxticks) {
    remove();
    return false;
  }
  Block block=location.getBlock();
  for (  Block testblock : GeneralMethods.getBlocksAroundPoint(location,affectingradius)) {
    if (testblock.getType() == Material.FIRE) {
      testblock.setType(Material.AIR);
      testblock.getWorld().playEffect(testblock.getLocation(),Effect.EXTINGUISH,0);
    }
    if (GeneralMethods.isRegionProtectedFromBuild(getPlayer(),"String_Node_Str",block.getLocation()))     continue;
    Material doorTypes[]={Material.WOODEN_DOOR,Material.SPRUCE_DOOR,Material.BIRCH_DOOR,Material.JUNGLE_DOOR,Material.ACACIA_DOOR,Material.DARK_OAK_DOOR};
    if (Arrays.asList(doorTypes).contains(block.getType()) && openDoors) {
      if (block.getData() >= 8) {
        block=block.getRelative(BlockFace.DOWN);
      }
      if (block.getData() < 4) {
        block.setData((byte)(block.getData() + 4));
        block.getWorld().playSound(block.getLocation(),Sound.DOOR_CLOSE,10,1);
      }
 else {
        block.setData((byte)(block.getData() - 4));
        block.getWorld().playSound(block.getLocation(),Sound.DOOR_OPEN,10,1);
      }
    }
    if ((block.getType() == Material.LEVER) && !affectedlevers.contains(block) && flickLevers) {
      Lever lever=new Lever(Material.LEVER,block.getData());
      lever.setPowered(!lever.isPowered());
      block.setData(lever.getData());
      Block supportBlock=block.getRelative(lever.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      affectedlevers.add(block);
    }
 else     if ((block.getType() == Material.STONE_BUTTON) && !affectedlevers.contains(block) && pressButtons) {
      final Button button=new Button(Material.STONE_BUTTON,block.getData());
      button.setPowered(!button.isPowered());
      block.setData(button.getData());
      Block supportBlock=block.getRelative(button.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      final Block btBlock=block;
      new BukkitRunnable(){
        public void run(){
          button.setPowered(!button.isPowered());
          btBlock.setData(button.getData());
          Block supportBlock=btBlock.getRelative(button.getAttachedFace());
          if (supportBlock != null && supportBlock.getType() != Material.AIR) {
            BlockState initialSupportState=supportBlock.getState();
            BlockState supportState=supportBlock.getState();
            supportState.setType(Material.AIR);
            supportState.update(true,false);
            initialSupportState.update(true);
          }
        }
      }
.runTaskLater(ProjectKorra.plugin,10);
      affectedlevers.add(block);
    }
 else     if ((block.getType() == Material.WOOD_BUTTON) && !affectedlevers.contains(block) && pressButtons) {
      final Button button=new Button(Material.WOOD_BUTTON,block.getData());
      button.setPowered(!button.isPowered());
      block.setData(button.getData());
      Block supportBlock=block.getRelative(button.getAttachedFace());
      if (supportBlock != null && supportBlock.getType() != Material.AIR) {
        BlockState initialSupportState=supportBlock.getState();
        BlockState supportState=supportBlock.getState();
        supportState.setType(Material.AIR);
        supportState.update(true,false);
        initialSupportState.update(true);
      }
      final Block btBlock=block;
      new BukkitRunnable(){
        public void run(){
          button.setPowered(!button.isPowered());
          btBlock.setData(button.getData());
          Block supportBlock=btBlock.getRelative(button.getAttachedFace());
          if (supportBlock != null && supportBlock.getType() != Material.AIR) {
            BlockState initialSupportState=supportBlock.getState();
            BlockState supportState=supportBlock.getState();
            supportState.setType(Material.AIR);
            supportState.update(true,false);
            initialSupportState.update(true);
          }
        }
      }
.runTaskLater(ProjectKorra.plugin,15);
      affectedlevers.add(block);
    }
  }
  if ((GeneralMethods.isSolid(block) || block.isLiquid()) && !affectedlevers.contains(block) && coolLava) {
    if (block.getType() == Material.LAVA || block.getType() == Material.STATIONARY_LAVA) {
      if (block.getData() == full) {
        block.setType(Material.OBSIDIAN);
      }
 else {
        block.setType(Material.COBBLESTONE);
      }
    }
    remove();
    return false;
  }
  double dist=location.distance(origin);
  if (Double.isNaN(dist) || dist > range) {
    remove();
    return false;
  }
  for (  Entity entity : GeneralMethods.getEntitiesAroundPoint(location,affectingradius)) {
    affect(entity);
  }
  advanceLocation();
  return true;
}