Program: 83589
Project: 83589
Buggy source:
public void onBlockFromTo(BlockFromToEvent event){
  Block sourceBlock=event.getBlock();
  Block targetBlock=event.getToBlock();
  if (plugin.two == true) {
    if (event.getBlock().getData() != 0x0) {
      return;
    }
    if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
      if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
        if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
          if (checkSpreadValidityTwo(targetBlock)) {
            event.getToBlock().setType(Material.LAVA);
          }
        }
      }
 else       if (targetBlock.getType() == Material.AIR) {
        if (checkSpreadValidityTwo(event.getToBlock())) {
          event.getToBlock().setType(Material.LAVA);
          event.getToBlock().setData((byte)0x0);
        }
      }
    }
  }
  if (plugin.three == true) {
    if (event.getBlock().getData() != 0x0) {
      return;
    }
    if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
      if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
        if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
          if (checkSpreadValidityThree(targetBlock)) {
            event.getToBlock().setType(Material.LAVA);
          }
        }
      }
 else       if (targetBlock.getType() == Material.AIR) {
        if (checkSpreadValidityThree(event.getToBlock())) {
          event.getToBlock().setType(Material.LAVA);
          event.getToBlock().setData((byte)0x0);
        }
      }
    }
  }
  if (plugin.other == true) {
    if (event.getBlock().getData() != 0x0) {
      return;
    }
    if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
      if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
        if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
          if (checkSpreadValidityOther(targetBlock)) {
            event.getToBlock().setType(Material.LAVA);
          }
        }
      }
 else       if (targetBlock.getType() == Material.AIR) {
        if (checkSpreadValidityOther(event.getToBlock())) {
          event.getToBlock().setType(Material.LAVA);
          event.getToBlock().setData((byte)0x0);
        }
      }
    }
  }
}

Fixed version (ground truth):
public void onBlockFromTo(BlockFromToEvent event){
  Player player=event.getPlayer();
  if (player.hasPermission("String_Node_Str")) {
    Block sourceBlock=event.getBlock();
    Block targetBlock=event.getToBlock();
    if (plugin.two == true) {
      if (event.getBlock().getData() != 0x0) {
        return;
      }
      if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
        if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
          if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
            if (checkSpreadValidityTwo(targetBlock)) {
              event.getToBlock().setType(Material.LAVA);
            }
          }
        }
 else         if (targetBlock.getType() == Material.AIR) {
          if (checkSpreadValidityTwo(event.getToBlock())) {
            event.getToBlock().setType(Material.LAVA);
            event.getToBlock().setData((byte)0x0);
          }
        }
      }
    }
    if (plugin.three == true) {
      if (event.getBlock().getData() != 0x0) {
        return;
      }
      if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
        if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
          if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
            if (checkSpreadValidityThree(targetBlock)) {
              event.getToBlock().setType(Material.LAVA);
            }
          }
        }
 else         if (targetBlock.getType() == Material.AIR) {
          if (checkSpreadValidityThree(event.getToBlock())) {
            event.getToBlock().setType(Material.LAVA);
            event.getToBlock().setData((byte)0x0);
          }
        }
      }
    }
    if (plugin.other == true) {
      if (event.getBlock().getData() != 0x0) {
        return;
      }
      if ((sourceBlock.getType() == Material.LAVA || sourceBlock.getType() == Material.STATIONARY_LAVA)) {
        if (targetBlock.getType() == Material.LAVA || targetBlock.getType() == Material.STATIONARY_LAVA) {
          if (targetBlock.getData() != 0x0 && targetBlock.getData() != 0x8) {
            if (checkSpreadValidityOther(targetBlock)) {
              event.getToBlock().setType(Material.LAVA);
            }
          }
        }
 else         if (targetBlock.getType() == Material.AIR) {
          if (checkSpreadValidityOther(event.getToBlock())) {
            event.getToBlock().setType(Material.LAVA);
            event.getToBlock().setData((byte)0x0);
          }
        }
      }
    }
  }
 else {
    player.sendMessage("String_Node_Str");
  }
}