Program: 81914
Project: 81914
Buggy source:
public boolean tryRip(World parWorld,int tryX,int tryY,int tryZ){
  boolean createEntity=false;
  boolean tryRip=true;
  if (!tryRip)   return true;
  if (!ConfigMisc.Storm_Tornado_grabBlocks)   return true;
  if (isNoDigCoord(tryX,tryY,tryZ))   return true;
  if (parWorld.isRemote) {
    int what=0;
  }
  boolean seesLight=false;
  Block blockID=parWorld.getBlockState(new BlockPos(tryX,tryY,tryZ)).getBlock();
  if ((((parWorld.getHeight(new BlockPos(tryX,0,tryZ)).getY() - 1 == tryY) || parWorld.getHeight(new BlockPos(tryX + 1,0,tryZ)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX,0,tryZ + 1)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX - 1,0,tryZ)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX,0,tryZ - 1)).getY() - 1 < tryY))) {
    if (parWorld.getChunkProvider().chunkExists((int)storm.pos.xCoord / 16,(int)storm.pos.zCoord / 16) && blockCount <= ConfigMisc.Storm_Tornado_maxBlocksPerStorm && lastGrabTime < System.currentTimeMillis() && tickGrabCount < ConfigMisc.Storm_Tornado_maxBlocksGrabbedPerTick) {
      lastGrabTime=System.currentTimeMillis() - 5;
      if (blockID != Blocks.snow && blockID != Blocks.glass) {
        EntityMovingBlock mBlock=null;
        if (parWorld.getClosestPlayer(storm.posBaseFormationPos.xCoord,storm.posBaseFormationPos.yCoord,storm.posBaseFormationPos.zCoord,140) != null) {
          if (createEntity) {
            if (blockID == Blocks.grass) {
              mBlock=new EntityMovingBlock(parWorld,tryX,tryY,tryZ,Blocks.dirt,storm);
            }
 else {
              mBlock=new EntityMovingBlock(parWorld,tryX,tryY,tryZ,blockID,storm);
            }
          }
          blockCount++;
          if (mBlock != null) {
            mBlock.setPosition(tryX,tryY,tryZ);
          }
          if (createEntity) {
            if (!parWorld.isRemote) {
              parWorld.spawnEntityInWorld(mBlock);
            }
          }
          tickGrabCount++;
          ripCount++;
          if (ripCount % 10 == 0) {
          }
 else {
          }
          if (mBlock != null) {
            mBlock.type=0;
          }
          seesLight=true;
        }
      }
 else {
        if (blockID == Blocks.glass) {
          parWorld.playSoundEffect(tryX,tryY,tryZ,"String_Node_Str",5.0F,1.0F);
        }
      }
    }
    if (WeatherUtil.shouldRemoveBlock(blockID)) {
      removeCount++;
      listBlockUpdateQueue.add(new BlockUpdateSnapshot(parWorld.provider.getDimensionId(),Blocks.air.getDefaultState(),new BlockPos(tryX,tryY,tryZ)));
    }
  }
  return seesLight;
}

Fixed version (ground truth):
public boolean tryRip(World parWorld,int tryX,int tryY,int tryZ){
  boolean createEntity=false;
  boolean tryRip=true;
  BlockPos pos=new BlockPos(tryX,tryY,tryZ);
  if (listBlockUpdateQueue.containsKey(pos))   return true;
  if (!tryRip)   return true;
  if (!ConfigMisc.Storm_Tornado_grabBlocks)   return true;
  if (isNoDigCoord(tryX,tryY,tryZ))   return true;
  boolean seesLight=false;
  IBlockState state=parWorld.getBlockState(pos);
  Block blockID=state.getBlock();
  if ((((parWorld.getHeight(new BlockPos(tryX,0,tryZ)).getY() - 1 == tryY) || parWorld.getHeight(new BlockPos(tryX + 1,0,tryZ)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX,0,tryZ + 1)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX - 1,0,tryZ)).getY() - 1 < tryY || parWorld.getHeight(new BlockPos(tryX,0,tryZ - 1)).getY() - 1 < tryY))) {
    if (parWorld.getChunkProvider().chunkExists((int)storm.pos.xCoord / 16,(int)storm.pos.zCoord / 16) && blockCount <= ConfigMisc.Storm_Tornado_maxBlocksPerStorm && lastGrabTime < System.currentTimeMillis() && tickGrabCount < ConfigMisc.Storm_Tornado_maxBlocksGrabbedPerTick) {
      lastGrabTime=System.currentTimeMillis() - 5;
      if (blockID != Blocks.snow && blockID != Blocks.glass) {
        EntityMovingBlock mBlock=null;
        if (parWorld.getClosestPlayer(storm.posBaseFormationPos.xCoord,storm.posBaseFormationPos.yCoord,storm.posBaseFormationPos.zCoord,140) != null) {
          if (createEntity) {
            if (blockID == Blocks.grass) {
              mBlock=new EntityMovingBlock(parWorld,tryX,tryY,tryZ,Blocks.dirt,storm);
            }
 else {
              mBlock=new EntityMovingBlock(parWorld,tryX,tryY,tryZ,blockID,storm);
            }
          }
          blockCount++;
          if (mBlock != null) {
            mBlock.setPosition(tryX,tryY,tryZ);
          }
          if (createEntity) {
            if (!parWorld.isRemote) {
              parWorld.spawnEntityInWorld(mBlock);
            }
          }
          tickGrabCount++;
          ripCount++;
          if (ripCount % 10 == 0) {
          }
 else {
          }
          if (mBlock != null) {
            mBlock.type=0;
          }
          seesLight=true;
        }
      }
 else {
        if (blockID == Blocks.glass) {
          parWorld.playSoundEffect(tryX,tryY,tryZ,"String_Node_Str",5.0F,1.0F);
        }
      }
    }
    if (WeatherUtil.shouldRemoveBlock(blockID)) {
      removeCount++;
      listBlockUpdateQueue.put(pos,new BlockUpdateSnapshot(parWorld.provider.getDimensionId(),Blocks.air.getDefaultState(),state,pos,true));
    }
  }
  return seesLight;
}