Program: 80738
Project: 80738
Buggy source:
@Override public void update(){
  super.update();
  if (!worldObj.isRemote) {
    doXpPickup();
    checkInventory();
    if (isBurning()) {
      if (currentTime > 0) {
        currentTime--;
      }
 else {
        if (searchBlock > -1) {
          EntityLivingBase mob=getMob(searchBlock);
          if (mob == null) {
            searchBlock=-1;
            addPartialUpdate("String_Node_Str",searchBlock);
          }
 else {
            if (slots[SLOT_SWORD] != null) {
              if (faker == null) {
                faker=new PlayerFake((WorldServer)worldObj,worldObj.getBlockState(pos).getBlock().getLocalizedName());
                faker.setPosition(0,0,0);
              }
              faker.setItemInHand(slots[SLOT_SWORD].copy());
              Multimap<String,AttributeModifier> attributeModifiers=slots[SLOT_SWORD].getAttributeModifiers(EntityEquipmentSlot.MAINHAND);
              attributeModifiers.get(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName());
              faker.setItemInUse(faker.getHeldItemMainhand(),72000);
              faker.onUpdate();
              faker.attackTargetEntityWithCurrentItem(mob);
              if (ToolHelper.damageTool(slots[SLOT_SWORD],worldObj,pos.getX(),pos.getY(),pos.getZ())) {
                destroyTool(SLOT_SWORD);
              }
              pickupDrops(searchBlock);
              currentTime=waitTime;
              addPartialUpdate("String_Node_Str",currentTime);
            }
 else {
              searchBlock=-1;
              addPartialUpdate("String_Node_Str",searchBlock);
            }
          }
        }
 else {
          doSearch();
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override public void update(){
  super.update();
  if (!worldObj.isRemote) {
    doXpPickup();
    checkInventory();
    if (isFull())     return;
    if (isBurning()) {
      if (currentTime > 0) {
        currentTime--;
      }
 else {
        if (searchBlock > -1) {
          EntityLivingBase mob=getMob(searchBlock);
          if (mob == null) {
            searchBlock=-1;
            addPartialUpdate("String_Node_Str",searchBlock);
          }
 else {
            if (slots[SLOT_SWORD] != null) {
              if (faker == null) {
                faker=new PlayerFake((WorldServer)worldObj,worldObj.getBlockState(pos).getBlock().getLocalizedName());
                faker.setPosition(0,0,0);
              }
              faker.setItemInHand(slots[SLOT_SWORD].copy());
              Multimap<String,AttributeModifier> attributeModifiers=slots[SLOT_SWORD].getAttributeModifiers(EntityEquipmentSlot.MAINHAND);
              attributeModifiers.get(SharedMonsterAttributes.ATTACK_SPEED.getAttributeUnlocalizedName());
              faker.setItemInUse(faker.getHeldItemMainhand(),72000);
              faker.onUpdate();
              faker.attackTargetEntityWithCurrentItem(mob);
              if (ToolHelper.damageTool(slots[SLOT_SWORD],worldObj,pos.getX(),pos.getY(),pos.getZ())) {
                destroyTool(SLOT_SWORD);
              }
              pickupDrops(searchBlock);
              currentTime=waitTime;
              addPartialUpdate("String_Node_Str",currentTime);
            }
 else {
              searchBlock=-1;
              addPartialUpdate("String_Node_Str",searchBlock);
            }
          }
        }
 else {
          doSearch();
        }
      }
    }
  }
}