Program: 161388
Project: 161388
Buggy source:
@Override public boolean update(){
  if (Double.isNaN(this.getHeat())) {
    this.setHeat(0.0);
  }
  if (Double.isNaN(this.storedEnergy)) {
    this.storedEnergy=0.0;
  }
  double oldHeat=this.getHeat();
  double oldEnergy=this.storedEnergy;
  energyGeneratedLastTick=0.0;
  int wasteAmt=0;
  int freeFuelSpace=0;
  double newHeat=0.0;
  IRadiationPulse radiationResult;
  TileEntityReactorControlRod controlRod;
  for (  CoordTriplet coord : attachedControlRods) {
    controlRod=(TileEntityReactorControlRod)worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
    if (controlRod == null) {
      continue;
    }
    if (this.isActive()) {
      radiationResult=controlRod.radiate();
      this.addStoredEnergy(radiationResult.getPowerProduced());
      this.addLatentHeat(radiationResult.getHeatProduced());
    }
    HeatPulse heatPulse=controlRod.onRadiateHeat(getHeat());
    if (heatPulse != null) {
      this.addStoredEnergy(heatPulse.powerProduced);
      this.addLatentHeat(heatPulse.heatChange);
    }
    wasteAmt+=controlRod.getWasteAmount();
    freeFuelSpace+=controlRod.getSizeOfFuelTank() - controlRod.getTotalContainedAmount();
  }
  if (freeFuelSpace >= 1000 || wasteAmt >= 1000) {
    if (this.wasteEjection == WasteEjectionSetting.kAutomaticOnlyIfCanReplace) {
      int fuelIngotsAvailable=0;
      for (      CoordTriplet coord : attachedAccessPorts) {
        TileEntityReactorAccessPort port=(TileEntityReactorAccessPort)worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
        if (port == null) {
          continue;
        }
        ItemStack fuelStack=port.getStackInSlot(TileEntityReactorAccessPort.SLOT_INLET);
        if (fuelStack != null) {
          fuelIngotsAvailable+=fuelStack.stackSize;
        }
      }
      if (wasteAmt / 1000 > fuelIngotsAvailable) {
        wasteAmt=fuelIngotsAvailable * 1000;
      }
      freeFuelSpace+=wasteAmt;
    }
 else     if (this.wasteEjection == WasteEjectionSetting.kManual) {
      wasteAmt=0;
    }
 else {
      freeFuelSpace+=wasteAmt;
    }
    if (freeFuelSpace >= 1000 || wasteAmt >= 1000) {
      tryEjectWaste(freeFuelSpace,wasteAmt);
    }
  }
  energyGeneratedLastTick=getStoredEnergy() - oldEnergy;
  if (latentHeat > 0.0) {
    double lossRate=0.01 + ((double)this.latentHeat * 0.000001);
    double latentHeatLoss=Math.max(0.02,this.latentHeat * 0.01);
    this.addLatentHeat(-1 * latentHeatLoss);
    this.addStoredEnergy(latentHeatLoss * BigReactors.powerPerHeat);
    energyGeneratedLastTick+=latentHeatLoss * BigReactors.powerPerHeat;
  }
  if (latentHeat < 0.0) {
    setHeat(0.0);
  }
  int energyAvailable=(int)getStoredEnergy();
  int energyRemaining=energyAvailable;
  if (activePowerTaps.size() > 0 && energyRemaining > 0) {
    for (    CoordTriplet coord : activePowerTaps) {
      if (energyRemaining <= 0) {
        break;
      }
      TileEntityReactorPowerTap tap=(TileEntityReactorPowerTap)this.worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
      if (tap == null) {
        continue;
      }
      energyRemaining=tap.onProvidePower(energyRemaining);
    }
  }
  if (energyAvailable != energyRemaining) {
    reduceStoredEnergy((double)(energyAvailable - energyRemaining));
  }
  ticksSinceLastUpdate++;
  if (ticksSinceLastUpdate >= ticksBetweenUpdates) {
    ticksSinceLastUpdate=0;
    sendTickUpdate();
  }
  return (oldHeat != this.getHeat() || oldEnergy != this.storedEnergy);
}

Fixed version (ground truth):
@Override public boolean update(){
  if (Double.isNaN(this.getHeat())) {
    this.setHeat(0.0);
  }
  if (Double.isNaN(this.storedEnergy)) {
    this.storedEnergy=0.0;
  }
  double oldHeat=this.getHeat();
  double oldEnergy=this.storedEnergy;
  energyGeneratedLastTick=0.0;
  int wasteAmt=0;
  int freeFuelSpace=0;
  double newHeat=0.0;
  IRadiationPulse radiationResult;
  TileEntityReactorControlRod controlRod;
  for (  CoordTriplet coord : attachedControlRods) {
    controlRod=(TileEntityReactorControlRod)worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
    if (controlRod == null) {
      continue;
    }
    if (this.isActive()) {
      radiationResult=controlRod.radiate();
      this.addStoredEnergy(radiationResult.getPowerProduced());
      this.addLatentHeat(radiationResult.getHeatProduced());
    }
    HeatPulse heatPulse=controlRod.onRadiateHeat(getHeat());
    if (heatPulse != null) {
      this.addStoredEnergy(heatPulse.powerProduced);
      this.addLatentHeat(heatPulse.heatChange);
    }
    wasteAmt+=controlRod.getWasteAmount();
    freeFuelSpace+=controlRod.getSizeOfFuelTank() - controlRod.getTotalContainedAmount();
  }
  if (freeFuelSpace >= 1000 || wasteAmt >= 1000) {
    if (this.wasteEjection == WasteEjectionSetting.kAutomaticOnlyIfCanReplace) {
      int fuelIngotsAvailable=0;
      for (      CoordTriplet coord : attachedAccessPorts) {
        TileEntityReactorAccessPort port=(TileEntityReactorAccessPort)worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
        if (port == null) {
          continue;
        }
        ItemStack fuelStack=port.getStackInSlot(TileEntityReactorAccessPort.SLOT_INLET);
        if (fuelStack != null) {
          fuelIngotsAvailable+=fuelStack.stackSize;
        }
      }
      if (wasteAmt / 1000 > fuelIngotsAvailable) {
        wasteAmt=fuelIngotsAvailable * 1000;
      }
      freeFuelSpace+=wasteAmt;
    }
 else     if (this.wasteEjection == WasteEjectionSetting.kManual) {
      wasteAmt=0;
    }
 else {
      freeFuelSpace+=wasteAmt;
    }
    if (freeFuelSpace >= 1000 || wasteAmt >= 1000) {
      tryEjectWaste(freeFuelSpace,wasteAmt);
    }
  }
  energyGeneratedLastTick=getStoredEnergy() - oldEnergy;
  if (latentHeat > 0.0) {
    double lossRate=0.01 + ((double)this.latentHeat * 0.000001);
    double latentHeatLoss=Math.max(0.02,this.latentHeat * 0.01);
    this.addLatentHeat(-1 * latentHeatLoss);
    this.addStoredEnergy(latentHeatLoss * BigReactors.powerPerHeat);
    energyGeneratedLastTick+=latentHeatLoss * BigReactors.powerPerHeat;
  }
  if (latentHeat < 0.0) {
    setHeat(0.0);
  }
  int energyAvailable=(int)getStoredEnergy();
  int energyRemaining=energyAvailable;
  if (attachedPowerTaps.size() > 0 && energyRemaining > 0) {
    for (    CoordTriplet coord : attachedPowerTaps) {
      if (energyRemaining <= 0) {
        break;
      }
      TileEntityReactorPowerTap tap=(TileEntityReactorPowerTap)this.worldObj.getBlockTileEntity(coord.x,coord.y,coord.z);
      if (tap == null) {
        continue;
      }
      energyRemaining=tap.onProvidePower(energyRemaining);
    }
  }
  if (energyAvailable != energyRemaining) {
    reduceStoredEnergy((double)(energyAvailable - energyRemaining));
  }
  ticksSinceLastUpdate++;
  if (ticksSinceLastUpdate >= ticksBetweenUpdates) {
    ticksSinceLastUpdate=0;
    sendTickUpdate();
  }
  return (oldHeat != this.getHeat() || oldEnergy != this.storedEnergy);
}