Program: 34899
Project: 34899
Buggy source:
@Override public void updateEntity(){
  super.updateEntity();
  if (data.moved) {
    data.afterMoveCheck(worldObj);
    worldObj.scheduleBlockUpdate(xCoord,yCoord,zCoord,worldObj.getBlock(xCoord,yCoord,zCoord),80);
  }
  if (master == null && !isMaster())   findMaster();
  if (master == null && !isMaster())   return;
  if (getIntalledUpgrades().contains(EnumMachineUpgrades.AUTO_OUTPUT)) {
    for (    ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
      Location location=new Location(this).move(direction);
      TileEntity entity=location.getTileEntity();
      if (entity != null && entity instanceof IFluidHandler && !(entity instanceof TileCoolingTower)) {
        IFluidHandler tank=(IFluidHandler)entity;
        master.drain(direction,tank.fill(direction.getOpposite(),new FluidStack(master.output.getFluidType(),100),true),true);
      }
    }
  }
  if (!isMaster())   return;
  if (input.getFluid() != null && input.getFluid().amount <= 0)   input.setFluid(null);
  if (output.getFluid() != null && output.getFluid().amount <= 0)   output.setFluid(null);
  int max=20;
  while (!coolant.isEmpty() && heat > 0 && max > 0) {
    ICoolant cooling=CoolantManager.INSTANCE.getCoolant(coolant.getFluid().getFluid());
    if (cooling == null)     break;
    coolant.drain(1,true);
    heat-=cooling.getDegreesCoolingPerMB(heat) * 1.5;
    max--;
  }
  if (heat > 80 || recipe == null || output.isFull() || input.isEmpty() || !input.getFluid().isFluidEqual(recipe.getInput()) || input.getFluidAmount() < recipe.getInput().amount || (!output.isEmpty() && !output.getFluid().isFluidEqual(recipe.getOutput())) || output.getCapacity() - output.getFluidAmount() < recipe.getOutput().amount)   return;
  input.drain(recipe.getInput().amount,true);
  output.fill(recipe.getOutput(),true);
  heat+=recipe.getHeat();
}

Fixed version (ground truth):
@Override public void updateEntity(){
  super.updateEntity();
  if (data.moved) {
    data.afterMoveCheck(worldObj);
    worldObj.scheduleBlockUpdate(xCoord,yCoord,zCoord,worldObj.getBlock(xCoord,yCoord,zCoord),80);
  }
  if (master == null && !isMaster())   findMaster();
  if (master == null && !isMaster())   return;
  if (getIntalledUpgrades().contains(EnumMachineUpgrades.AUTO_OUTPUT)) {
    for (    ForgeDirection direction : ForgeDirection.VALID_DIRECTIONS) {
      Location location=new Location(this).move(direction);
      TileEntity entity=location.getTileEntity();
      if (entity != null && entity instanceof IFluidHandler && !(entity instanceof TileCoolingTower) && master.output.getFluidType() != null) {
        IFluidHandler tank=(IFluidHandler)entity;
        int drain=tank.fill(direction.getOpposite(),new FluidStack(master.output.getFluidType(),100),false);
        FluidStack stack=master.drain(direction,drain,true);
        tank.fill(direction.getOpposite(),stack,true);
      }
    }
  }
  if (!isMaster())   return;
  if (input.getFluid() != null && input.getFluid().amount <= 0)   input.setFluid(null);
  if (output.getFluid() != null && output.getFluid().amount <= 0)   output.setFluid(null);
  int max=20;
  while (!coolant.isEmpty() && heat > 0 && max > 0) {
    ICoolant cooling=CoolantManager.INSTANCE.getCoolant(coolant.getFluid().getFluid());
    if (cooling == null)     break;
    coolant.drain(1,true);
    heat-=cooling.getDegreesCoolingPerMB(heat) * 1.5;
    max--;
  }
  if (heat > 80 || recipe == null || output.isFull() || input.isEmpty() || !input.getFluid().isFluidEqual(recipe.getInput()) || input.getFluidAmount() < recipe.getInput().amount || (!output.isEmpty() && !output.getFluid().isFluidEqual(recipe.getOutput())) || output.getCapacity() - output.getFluidAmount() < recipe.getOutput().amount)   return;
  input.drain(recipe.getInput().amount,true);
  output.fill(recipe.getOutput(),true);
  heat+=recipe.getHeat();
}