Program: 133834
Project: 133834
Buggy source:
public void earthGrabSelf(){
  closestEntity=player;
  getGround();
  ParticleEffect.BLOCK_CRACK.display((ParticleEffect.ParticleData)new ParticleEffect.BlockData(blockType,(byte)0),1F,1F,1F,0.1F,100,player.getLocation(),500);
  if (closestEntity != null) {
    ArrayList<Block> blocks=new ArrayList<Block>();
    Location location=closestEntity.getLocation();
    Location loc1=location.clone();
    Location loc2=location.clone();
    Location testLoc, testLoc2;
    double factor=3;
    double factor2=4;
    int height1=3;
    int height2=2;
    for (double angle=0; angle <= 360; angle+=20) {
      testLoc=loc1.clone().add(factor * Math.cos(Math.toRadians(angle)),1,factor * Math.sin(Math.toRadians(angle)));
      testLoc2=loc2.clone().add(factor2 * Math.cos(Math.toRadians(angle)),1,factor2 * Math.sin(Math.toRadians(angle)));
      for (int y=0; y < height - height1; y++) {
        testLoc=testLoc.clone().add(0,-1,0);
        if (isEarthbendable(testLoc.getBlock())) {
          if (!blocks.contains(testLoc.getBlock())) {
            new RaiseEarth(player,testLoc,height1 + y - 1);
          }
          blocks.add(testLoc.getBlock());
          break;
        }
      }
      for (int y=0; y < height - height2; y++) {
        testLoc2=testLoc2.clone().add(0,-1,0);
        if (isEarthbendable(testLoc2.getBlock())) {
          if (!blocks.contains(testLoc2.getBlock())) {
            new RaiseEarth(player,testLoc2,height2 + y - 1);
          }
          blocks.add(testLoc2.getBlock());
          break;
        }
      }
    }
    bPlayer.addCooldown(this);
  }
}

Fixed version (ground truth):
public void earthGrabSelf(){
  closestEntity=player;
  getGround();
  ParticleEffect.BLOCK_CRACK.display((ParticleEffect.ParticleData)new ParticleEffect.BlockData(blockType,blockByte),1F,1F,1F,0.1F,100,player.getLocation(),500);
  if (closestEntity != null) {
    ArrayList<Block> blocks=new ArrayList<Block>();
    Location location=closestEntity.getLocation();
    Location loc1=location.clone();
    Location loc2=location.clone();
    Location testLoc, testLoc2;
    double factor=3;
    double factor2=4;
    int height1=3;
    int height2=2;
    for (double angle=0; angle <= 360; angle+=20) {
      testLoc=loc1.clone().add(factor * Math.cos(Math.toRadians(angle)),1,factor * Math.sin(Math.toRadians(angle)));
      testLoc2=loc2.clone().add(factor2 * Math.cos(Math.toRadians(angle)),1,factor2 * Math.sin(Math.toRadians(angle)));
      for (int y=0; y < height - height1; y++) {
        testLoc=testLoc.clone().add(0,-1,0);
        if (isEarthbendable(testLoc.getBlock())) {
          if (!blocks.contains(testLoc.getBlock())) {
            new RaiseEarth(player,testLoc,height1 + y - 1);
          }
          blocks.add(testLoc.getBlock());
          break;
        }
      }
      for (int y=0; y < height - height2; y++) {
        testLoc2=testLoc2.clone().add(0,-1,0);
        if (isEarthbendable(testLoc2.getBlock())) {
          if (!blocks.contains(testLoc2.getBlock())) {
            new RaiseEarth(player,testLoc2,height2 + y - 1);
          }
          blocks.add(testLoc2.getBlock());
          break;
        }
      }
    }
    bPlayer.addCooldown(this);
  }
}