Program: 169515
Project: 169515
Buggy source:
@Override public void updateEntity(){
  super.updateEntity();
  if (!worldObj.isRemote && isBufferEmpty()) {
    boolean ratiosMatch=true;
    for (int i=0; i < 9; i++) {
      if (inventory[i] != null) {
        int inputFilterItems=getItemsInSection(inventory[i],EnumSection.INPUT_FILTER);
        int bufferItems=getItemsInSection(inventory[i],EnumSection.BUFFER);
        if (bufferItems < inputFilterItems) {
          ratiosMatch=false;
          break;
        }
      }
    }
    if (ratiosMatch && !isEjecting())     checkIndividualOutputFilterAndEject();
    if (mode == 1 && !isEjecting()) {
      IInventory inv=IOHelper.getInventoryForTE(getTileCache()[getOutputDirection().ordinal()].getTileEntity());
      if (inv != null) {
        int[] accessibleSlots;
        if (inv instanceof ISidedInventory) {
          accessibleSlots=((ISidedInventory)inv).getAccessibleSlotsFromSide(getFacingDirection().ordinal());
        }
 else {
          accessibleSlots=new int[inv.getSizeInventory()];
          for (int i=0; i < accessibleSlots.length; i++)           accessibleSlots[i]=i;
        }
        for (int i=18; i < 27; i++) {
          if (inventory[i] != null) {
            int outputFilterItems=getItemsInSection(inventory[i],EnumSection.OUTPUT_FILTER);
            int supplyingInvCount=0;
            for (            int slot : accessibleSlots) {
              ItemStack stackInSlot=inv.getStackInSlot(slot);
              if (stackInSlot != null && WidgetFuzzySetting.areStacksEqual(stackInSlot,inventory[i],fuzzySetting) && IOHelper.canInsertItemToInventory(inv,inventory[i],slot,getFacingDirection().ordinal())) {
                supplyingInvCount+=stackInSlot.stackSize;
              }
            }
            if (supplyingInvCount < outputFilterItems) {
              ItemStack requestedStack=inventory[i].copy();
              requestedStack.stackSize=outputFilterItems - supplyingInvCount;
              ItemStack bufferItems=IOHelper.extract(this,ForgeDirection.UNKNOWN,requestedStack,true,false,fuzzySetting);
              if (bufferItems != null) {
                ItemStack remainder=IOHelper.insert(inv,bufferItems,getFacingDirection().ordinal(),false);
                if (remainder != null) {
                  IOHelper.insert(this,remainder,ForgeDirection.UNKNOWN,false);
                }
              }
            }
          }
        }
      }
    }
    boolean shouldEmitRedstone=isSatisfied() || animationTicker >= 0;
    if (isEjecting() != shouldEmitRedstone) {
      setOutputtingRedstone(shouldEmitRedstone);
      sendUpdatePacket();
    }
  }
}

Fixed version (ground truth):
@Override public void updateEntity(){
  super.updateEntity();
  if (!worldObj.isRemote && isBufferEmpty()) {
    boolean ratiosMatch=true;
    for (int i=0; i < 9; i++) {
      if (inventory[i] != null) {
        int inputFilterItems=getItemsInSection(inventory[i],EnumSection.INPUT_FILTER);
        int bufferItems=getItemsInSection(inventory[i],EnumSection.BUFFER);
        if (bufferItems < inputFilterItems) {
          ratiosMatch=false;
          break;
        }
      }
    }
    if (ratiosMatch && !isEjecting())     checkIndividualOutputFilterAndEject();
    if (mode == 1 && !isEjecting()) {
      IInventory inv=IOHelper.getInventoryForTE(getTileCache()[getOutputDirection().ordinal()].getTileEntity());
      if (inv != null) {
        int[] accessibleSlots;
        if (inv instanceof ISidedInventory) {
          accessibleSlots=((ISidedInventory)inv).getAccessibleSlotsFromSide(getFacingDirection().ordinal());
        }
 else {
          accessibleSlots=new int[inv.getSizeInventory()];
          for (int i=0; i < accessibleSlots.length; i++)           accessibleSlots[i]=i;
        }
        for (int i=18; i < 27; i++) {
          if (inventory[i] != null) {
            int outputFilterItems=getItemsInSection(inventory[i],EnumSection.OUTPUT_FILTER);
            int supplyingInvCount=0;
            for (            int slot : accessibleSlots) {
              ItemStack stackInSlot=inv.getStackInSlot(slot);
              if (stackInSlot != null && ItemStackHelper.areStacksEqual(stackInSlot,inventory[i],fuzzySetting) && IOHelper.canInsertItemToInventory(inv,inventory[i],slot,getFacingDirection().ordinal())) {
                supplyingInvCount+=stackInSlot.stackSize;
              }
            }
            if (supplyingInvCount < outputFilterItems) {
              ItemStack requestedStack=inventory[i].copy();
              requestedStack.stackSize=outputFilterItems - supplyingInvCount;
              ItemStack bufferItems=IOHelper.extract(this,ForgeDirection.UNKNOWN,requestedStack,true,false,fuzzySetting);
              if (bufferItems != null) {
                ItemStack remainder=IOHelper.insert(inv,bufferItems,getFacingDirection().ordinal(),false);
                if (remainder != null) {
                  IOHelper.insert(this,remainder,ForgeDirection.UNKNOWN,false);
                }
              }
            }
          }
        }
      }
    }
    boolean shouldEmitRedstone=isSatisfied() || animationTicker >= 0;
    if (isEjecting() != shouldEmitRedstone) {
      setOutputtingRedstone(shouldEmitRedstone);
      sendUpdatePacket();
    }
  }
}