Program: 34647
Project: 34647
Buggy source:
@Override public void onUpdate(){
  super.onUpdate();
  if (!worldObj.isRemote) {
    ItemStack is=getEntityItem();
    if ((rockLife-=rand.nextInt(isInWater() ? 5 : 3)) < 0) {
      if (--is.stackSize == 0)       setDead();
 else {
        rockLife=700;
        setEntityItemStack(is);
      }
    }
    if (rand.nextInt(64 - Math.min(32,is.stackSize / 2)) == 0) {
      for (int attempt=0; attempt < 4 + (is.stackSize / 8); attempt++) {
        Pos pos=Pos.at(this);
        pos=pos.offset(MathUtil.floor((rand.nextDouble() - 0.5D) * 4D),MathUtil.floor((rand.nextDouble() - 0.5D) * 4D),MathUtil.floor((rand.nextDouble() - 0.5D) * 4D));
        Block block=pos.getBlock(worldObj);
        Block target=blockTransformations.get(block);
        if (target != null)         pos.setBlock(worldObj,target);
 else         if (block.getMaterial() == Material.air) {
          if (rand.nextInt(5) == 0)           pos.setBlock(worldObj,Blocks.fire);
 else           continue;
        }
 else         if (block == Blocks.tnt) {
          pos.setAir(worldObj);
          worldObj.createExplosion(null,pos.getX(),pos.getY(),pos.getZ(),3.9F,true);
        }
 else         if (block == Blocks.tallgrass && pos.getMetadata(worldObj) != 0) {
          pos.setMetadata(worldObj,0,2);
        }
 else         continue;
        if (block.getMaterial() != Material.air) {
          PacketPipeline.sendToAllAround(this,64D,new C20Effect(FXType.Basic.IGNEOUS_ROCK_MELT,pos));
        }
        if (rand.nextInt(3) == 0)         break;
      }
    }
    if (rand.nextInt(80 - Math.min(32,is.stackSize / 3)) == 0) {
      List<EntityLivingBase> nearbyEntities=worldObj.getEntitiesWithinAABB(EntityLivingBase.class,boundingBox.expand(3D,3D,3D));
      if (!nearbyEntities.isEmpty())       nearbyEntities.get(rand.nextInt(nearbyEntities.size())).setFire(1 + rand.nextInt(4) + getEntityItem().stackSize / 10);
    }
  }
  int ix=MathUtil.floor(posX), iy=MathUtil.floor(posY), iz=MathUtil.floor(posZ);
  if (rand.nextInt(6) == 0 && worldObj.getBlock(ix,iy,iz).getMaterial() == Material.water) {
    HardcoreEnderExpansion.fx.global("String_Node_Str",posX + 0.2F * (rand.nextFloat() - 0.5F),posY + 0.2F * (rand.nextFloat() - 0.5F),posZ + 0.2F * (rand.nextFloat() - 0.5F),0D,0.6D,0D);
  }
  if (worldObj.getBlock(ix,iy - 1,iz) == BlockList.dungeon_puzzle) {
    int meta=worldObj.getBlockMetadata(ix,iy - 1,iz);
    if (BlockDungeonPuzzle.canTrigger(meta)) {
      for (int a=0; a < 4; a++)       HardcoreEnderExpansion.fx.igneousRockBreak(this);
      if (!worldObj.isRemote && onGround) {
        worldObj.spawnEntityInWorld(new EntityTechnicalPuzzleChain(worldObj,ix,iy - 1,iz,thrownDirection));
        setDead();
      }
    }
  }
  if (rand.nextInt(30) == 0) {
    FXHelper.create("String_Node_Str").pos(this).fluctuatePos(0.1D).spawn(rand,2);
  }
}

Fixed version (ground truth):
@Override public void onUpdate(){
  super.onUpdate();
  if (!worldObj.isRemote) {
    ItemStack is=getEntityItem();
    if ((rockLife-=rand.nextInt(isInWater() ? 5 : 3)) < 0) {
      if (--is.stackSize == 0)       setDead();
 else {
        rockLife=700;
        setEntityItemStack(is);
      }
    }
    if (rand.nextInt(64 - Math.min(32,is.stackSize / 2)) == 0) {
      for (int attempt=0; attempt < 4 + (is.stackSize / 8); attempt++) {
        Pos pos=Pos.at(this);
        pos=pos.offset(MathUtil.floor((rand.nextDouble() - 0.5D) * 4D),MathUtil.floor((rand.nextDouble() - 0.5D) * 4D),MathUtil.floor((rand.nextDouble() - 0.5D) * 4D));
        Block block=pos.getBlock(worldObj);
        Block target=blockTransformations.get(block);
        if (target != null)         pos.setBlock(worldObj,target);
 else         if (block.getMaterial() == Material.air) {
          if (rand.nextInt(5) == 0)           pos.setBlock(worldObj,Blocks.fire);
 else           continue;
        }
 else         if (block == Blocks.tnt) {
          pos.setAir(worldObj);
          worldObj.createExplosion(null,pos.getX(),pos.getY(),pos.getZ(),3.9F,true);
        }
 else         if (block == Blocks.tallgrass && pos.getMetadata(worldObj) != 0) {
          pos.setMetadata(worldObj,0,2);
        }
 else         continue;
        if (block.getMaterial() != Material.air) {
          PacketPipeline.sendToAllAround(this,64D,new C20Effect(FXType.Basic.IGNEOUS_ROCK_MELT,pos));
        }
        if (rand.nextInt(3) == 0)         break;
      }
    }
    if (rand.nextInt(80 - Math.min(32,is.stackSize / 3)) == 0) {
      CollectionUtil.<EntityLivingBase>random(worldObj.getEntitiesWithinAABB(EntityLivingBase.class,boundingBox.expand(3D,3D,3D)),rand).ifPresent(entity -> {
        entity.setFire(1 + rand.nextInt(4) + getEntityItem().stackSize / 10);
      }
);
    }
  }
  Pos pos=Pos.at(this);
  Pos below=pos.getDown();
  if (rand.nextInt(6) == 0 && pos.getMaterial(worldObj) == Material.water) {
    HardcoreEnderExpansion.fx.global("String_Node_Str",posX + 0.2F * (rand.nextFloat() - 0.5F),posY + 0.2F * (rand.nextFloat() - 0.5F),posZ + 0.2F * (rand.nextFloat() - 0.5F),0D,0.6D,0D);
  }
  if (below.getBlock(worldObj) == BlockList.dungeon_puzzle && BlockDungeonPuzzle.canTrigger(below.getMetadata(worldObj))) {
    for (int a=0; a < 4; a++)     HardcoreEnderExpansion.fx.igneousRockBreak(this);
    if (!worldObj.isRemote && onGround) {
      worldObj.spawnEntityInWorld(new EntityTechnicalPuzzleChain(worldObj,below,Facing4.list[thrownDirection]));
      setDead();
    }
  }
  if (rand.nextInt(30) == 0) {
    FXHelper.create("String_Node_Str").pos(this).fluctuatePos(0.1D).spawn(rand,2);
  }
}