Program: 109820
Project: 109820
Buggy source:
@Override protected void initEntityAI(){
  this.tasks.addTask(0,new EntityAISwimming(this));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityMob.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityAshen.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityIguana.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntitySkeleton.class,8.0F,1D,1D,15F));
  this.tasks.addTask(2,new EntityAIAttackMelee(this,1F,true){
    @Override public void startExecuting(){
      super.startExecuting();
      if (this.attacker instanceof EntityKoaBase) {
        ((EntityKoaBase)this.attacker).setFightingItem();
      }
    }
  }
);
  this.tasks.addTask(3,new EntityAIChillAtFire(this));
  this.tasks.addTask(3,new EntityAIMoveIndoors(this));
  this.tasks.addTask(3,new EntityAIRestrictOpenDoor(this));
  this.tasks.addTask(4,new EntityAIOpenDoor(this,true));
  this.tasks.addTask(5,new EntityAIMoveTowardsRestriction(this,1D));
  this.tasks.addTask(6,new EntityAIVillagerMate(this));
  this.tasks.addTask(9,new EntityAIWatchClosest2(this,EntityPlayer.class,3.0F,1.0F));
  this.tasks.addTask(9,new EntityAIVillagerInteract(this));
  this.tasks.addTask(9,new EntityAIWanderNotLazy(this,1D,40));
  this.tasks.addTask(10,new EntityAIWatchClosest(this,EntityLiving.class,8.0F));
  this.targetTasks.addTask(1,new EntityAIHurtByTarget(this,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityMob.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityAshen.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityIguana.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntitySkeleton.class,true));
}

Fixed version (ground truth):
@Override protected void initEntityAI(){
  this.tasks.addTask(0,new EntityAISwimming(this));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityMob.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityAshen.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityIguana.class,8.0F,1D,1D,15F));
  this.tasks.addTask(1,new EntityAIAvoidEntityOnLowHealth(this,EntityTropiSkeleton.class,8.0F,1D,1D,15F));
  this.tasks.addTask(2,new EntityAIAttackMelee(this,1F,true){
    @Override public void startExecuting(){
      super.startExecuting();
      if (this.attacker instanceof EntityKoaBase) {
        ((EntityKoaBase)this.attacker).setFightingItem();
      }
    }
  }
);
  this.tasks.addTask(3,new EntityAIChillAtFire(this));
  this.tasks.addTask(3,new EntityAIMoveIndoors(this));
  this.tasks.addTask(3,new EntityAIRestrictOpenDoor(this));
  this.tasks.addTask(4,new EntityAIOpenDoor(this,true));
  this.tasks.addTask(5,new EntityAIMoveTowardsRestriction(this,1D));
  this.tasks.addTask(6,new EntityAIVillagerMate(this));
  this.tasks.addTask(9,new EntityAIWatchClosest2(this,EntityPlayer.class,3.0F,1.0F));
  this.tasks.addTask(9,new EntityAIVillagerInteract(this));
  this.tasks.addTask(9,new EntityAIWanderNotLazy(this,1D,40));
  this.tasks.addTask(10,new EntityAIWatchClosest(this,EntityLiving.class,8.0F));
  this.targetTasks.addTask(1,new EntityAIHurtByTarget(this,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityMob.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityAshen.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityIguana.class,true));
  this.targetTasks.addTask(2,new EntityAINearestAttackableTarget(this,EntityTropiSkeleton.class,true));
}