Program: 8271
Project: 8271
Buggy source:
@Override public ItemStack onItemRightClick(ItemStack stack,World world,EntityPlayer player){
  if (world.isRemote)   return stack;
  MovingObjectPosition mop=this.getMovingObjectPositionFromPlayer(world,player,false);
  if (mop != null && mop.typeOfHit.equals(MovingObjectType.BLOCK)) {
    int numRows=calculateDepthFromCharge(stack);
    boolean hasAction=false;
    ForgeDirection direction=ForgeDirection.getOrientation(mop.sideHit);
    Coordinates coords=new Coordinates(mop);
    AxisAlignedBB box=WorldHelper.getDeepBox(coords,direction,--numRows);
    List<ItemStack> drops=Lists.newArrayList();
    for (int x=(int)box.minX; x <= box.maxX; x++)     for (int y=(int)box.minY; y <= box.maxY; y++)     for (int z=(int)box.minZ; z <= box.maxZ; z++) {
      Block block=world.getBlock(x,y,z);
      float hardness=block.getBlockHardness(world,x,y,z);
      if (block == Blocks.air || hardness >= 50.0F || hardness == -1.0F) {
        continue;
      }
      if (!consumeFuel(player,stack,8,true)) {
        break;
      }
      if (!hasAction) {
        hasAction=true;
      }
      if (PlayerHelper.hasBreakPermission(world,((EntityPlayerMP)player),x,y,z)) {
        List<ItemStack> list=WorldHelper.getBlockDrops(world,player,block,stack,x,y,z);
        if (list != null && list.size() > 0) {
          drops.addAll(list);
        }
        world.setBlockToAir(x,y,z);
        if (world.rand.nextInt(8) == 0) {
          PacketHandler.sendToAllAround(new ParticlePKT("String_Node_Str",x,y,z),new TargetPoint(world.provider.dimensionId,x,y + 1,z,32));
        }
      }
    }
    PlayerHelper.swingItem(player);
    if (hasAction) {
      WorldHelper.createLootDrop(drops,world,mop.blockX,mop.blockY,mop.blockZ);
      world.playSoundAtEntity(player,"String_Node_Str",1.0F,1.0F);
    }
  }
  return stack;
}

Fixed version (ground truth):
@Override public ItemStack onItemRightClick(ItemStack stack,World world,EntityPlayer player){
  if (world.isRemote)   return stack;
  MovingObjectPosition mop=this.getMovingObjectPositionFromPlayer(world,player,false);
  if (mop != null && mop.typeOfHit.equals(MovingObjectType.BLOCK)) {
    int numRows=calculateDepthFromCharge(stack);
    boolean hasAction=false;
    ForgeDirection direction=ForgeDirection.getOrientation(mop.sideHit);
    Coordinates coords=new Coordinates(mop);
    AxisAlignedBB box=WorldHelper.getDeepBox(coords,direction,--numRows);
    List<ItemStack> drops=Lists.newArrayList();
    for (int x=(int)box.minX; x <= box.maxX; x++)     for (int y=(int)box.minY; y <= box.maxY; y++)     for (int z=(int)box.minZ; z <= box.maxZ; z++) {
      Block block=world.getBlock(x,y,z);
      float hardness=block.getBlockHardness(world,x,y,z);
      if (block == Blocks.air || hardness >= 50.0F || hardness == -1.0F) {
        continue;
      }
      if (!consumeFuel(player,stack,8,true)) {
        break;
      }
      if (!hasAction) {
        hasAction=true;
      }
      if (PlayerHelper.hasBreakPermission(((EntityPlayerMP)player),x,y,z)) {
        List<ItemStack> list=WorldHelper.getBlockDrops(world,player,block,stack,x,y,z);
        if (list != null && list.size() > 0) {
          drops.addAll(list);
        }
        world.setBlockToAir(x,y,z);
        if (world.rand.nextInt(8) == 0) {
          PacketHandler.sendToAllAround(new ParticlePKT("String_Node_Str",x,y,z),new TargetPoint(world.provider.dimensionId,x,y + 1,z,32));
        }
      }
    }
    PlayerHelper.swingItem(player);
    if (hasAction) {
      WorldHelper.createLootDrop(drops,world,mop.blockX,mop.blockY,mop.blockZ);
      world.playSoundAtEntity(player,"String_Node_Str",1.0F,1.0F);
    }
  }
  return stack;
}