Program: 8295
Project: 8295
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 charge=this.getCharge(stack);
    int numRows;
    boolean hasAction=false;
    if (charge == 0)     numRows=1;
 else     if (charge == 1)     numRows=16;
 else     if (charge == 2)     numRows=32;
 else     numRows=64;
    ForgeDirection direction=ForgeDirection.getOrientation(mop.sideHit);
    Coordinates coords=new Coordinates(mop);
    CoordinateBox box=getBoxFromDirection(direction,coords,numRows);
    List<ItemStack> drops=new ArrayList();
    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 == null || block == Blocks.air || hardness >= 50.0F || hardness == -1.0F) {
        continue;
      }
      if (!this.consumeFuel(player,stack,8,true)) {
        break;
      }
      if (!hasAction) {
        hasAction=true;
      }
      ArrayList<ItemStack> list=Utils.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));
      }
    }
    PacketHandler.sendTo(new SwingItemPKT(),(EntityPlayerMP)player);
    if (hasAction) {
      world.playSoundAtEntity(player,"String_Node_Str",0.5F,1.0F);
      world.spawnEntityInWorld(new EntityLootBall(world,drops,player.posX,player.posY,player.posZ));
    }
  }
  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 charge=this.getCharge(stack);
    int numRows;
    boolean hasAction=false;
    if (charge == 0)     numRows=1;
 else     if (charge == 1)     numRows=16;
 else     if (charge == 2)     numRows=24;
 else     if (charge == 3)     numRows=32;
 else     if (charge == 4)     numRows=40;
 else     if (charge == 5)     numRows=48;
 else     if (charge == 6)     numRows=56;
 else     numRows=64;
    ForgeDirection direction=ForgeDirection.getOrientation(mop.sideHit);
    Coordinates coords=new Coordinates(mop);
    CoordinateBox box=getBoxFromDirection(direction,coords,numRows);
    List<ItemStack> drops=new ArrayList();
    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 == null || block == Blocks.air || hardness >= 50.0F || hardness == -1.0F) {
        continue;
      }
      if (!this.consumeFuel(player,stack,8,true)) {
        break;
      }
      if (!hasAction) {
        hasAction=true;
      }
      ArrayList<ItemStack> list=Utils.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));
      }
    }
    PacketHandler.sendTo(new SwingItemPKT(),(EntityPlayerMP)player);
    if (hasAction) {
      world.playSoundAtEntity(player,"String_Node_Str",0.5F,1.0F);
      world.spawnEntityInWorld(new EntityLootBall(world,drops,player.posX,player.posY,player.posZ));
    }
  }
  return stack;
}