Program: 161397
Project: 161397
Buggy source:
public int onProvidePower(int units){
  ArrayList<CoordTriplet> deadCoords=null;
  for (  CoordTriplet outputCoord : powerConnections) {
    TileEntity te=this.worldObj.getBlockTileEntity(outputCoord.x,outputCoord.y,outputCoord.z);
    if (te instanceof IPowerReceptor) {
      int mjAvailable=(int)Math.floor((float)units / bcPowerFactor);
      IPowerReceptor ipr=(IPowerReceptor)te;
      IPowerProvider ipp=ipr.getPowerProvider();
      ForgeDirection approachDirection=outputCoord.getOppositeDirectionFromSourceCoords(this.xCoord,this.yCoord,this.zCoord);
      if (ipp != null && ipp.preConditions(ipr) && ipp.getMinEnergyReceived() <= mjAvailable) {
        int energyUsed=Math.min(Math.min(ipp.getMaxEnergyReceived(),mjAvailable),ipp.getMaxEnergyStored() - (int)Math.floor(ipp.getEnergyStored()));
        ipp.receiveEnergy(energyUsed,approachDirection);
        units-=(int)((float)energyUsed * bcPowerFactor);
      }
    }
 else     if (te instanceof IConnector) {
      ForgeDirection approachDirection=outputCoord.getDirectionFromSourceCoords(this.xCoord,this.yCoord,this.zCoord);
      IElectricityNetwork network=ElectricityNetworkHelper.getNetworkFromTileEntity(te,approachDirection);
      if (network != null) {
        double wattsAvailable=(double)units / (double)uePowerFactor;
        double wattsWanted=network.getRequest().getWatts();
        if (wattsWanted > 0) {
          if (wattsWanted > wattsAvailable) {
            wattsWanted=wattsAvailable;
          }
          network.startProducing(this,wattsWanted / getVoltage(),getVoltage());
          units-=(int)Math.ceil(wattsWanted * uePowerFactor);
        }
 else {
          network.stopProducing(this);
        }
      }
    }
 else {
      if (deadCoords == null) {
        deadCoords=new ArrayList<CoordTriplet>();
      }
      deadCoords.add(outputCoord);
    }
  }
  if (deadCoords != null && deadCoords.size() > 0) {
    powerConnections.removeAll(deadCoords);
    if (powerConnections.size() <= 0) {
      worldObj.setBlockMetadataWithNotify(xCoord,yCoord,zCoord,BlockReactorPart.POWERTAP_METADATA_BASE,2);
    }
    if (this.isConnected()) {
      getReactorController().onPowerTapConnectionChanged(xCoord,yCoord,zCoord,powerConnections.size());
    }
  }
  return units;
}

Fixed version (ground truth):
/** 
 * This will be called by the Reactor Controller when this tap should be providing power.
 * @return Power units remaining after consumption.
 */
public int onProvidePower(int units){
  ArrayList<CoordTriplet> deadCoords=null;
  if (!isConnected) {
    return units;
  }
  TileEntity te=this.worldObj.getBlockTileEntity(xCoord + out.offsetX,yCoord + out.offsetY,zCoord + out.offsetZ);
  if (te instanceof IPowerReceptor) {
    int mjAvailable=(int)Math.floor((float)units / bcPowerFactor);
    IPowerReceptor ipr=(IPowerReceptor)te;
    IPowerProvider ipp=ipr.getPowerProvider();
    ForgeDirection approachDirection=out.getOpposite();
    if (ipp != null && ipp.preConditions(ipr) && ipp.getMinEnergyReceived() <= mjAvailable) {
      int energyUsed=Math.min(Math.min(ipp.getMaxEnergyReceived(),mjAvailable),ipp.getMaxEnergyStored() - (int)Math.floor(ipp.getEnergyStored()));
      ipp.receiveEnergy(energyUsed,approachDirection);
      units-=(int)((float)energyUsed * bcPowerFactor);
    }
  }
 else   if (te instanceof IConnector) {
    ForgeDirection approachDirection=out.getOpposite();
    IElectricityNetwork network=ElectricityNetworkHelper.getNetworkFromTileEntity(te,approachDirection);
    if (network != null) {
      double wattsAvailable=(double)units / (double)uePowerFactor;
      double wattsWanted=network.getRequest().getWatts();
      if (wattsWanted > 0) {
        if (wattsWanted > wattsAvailable) {
          wattsWanted=wattsAvailable;
        }
        network.startProducing(this,wattsWanted / getVoltage(),getVoltage());
        units-=(int)Math.ceil(wattsWanted * uePowerFactor);
      }
 else {
        network.stopProducing(this);
      }
    }
  }
 else {
    isConnected=false;
    worldObj.setBlockMetadataWithNotify(xCoord,yCoord,zCoord,BlockReactorPart.POWERTAP_METADATA_BASE,2);
  }
  return units;
}