Program: 84921
Project: 84921
Buggy source:
public void tickfast(){
  List<claymore> r=new ArrayList<claymore>();
  List<Entity> r2=new ArrayList<Entity>();
  for (  Entity i : plugin.currentWorld.getEntities()) {
    if (i instanceof Arrow) {
      Location l=i.getLocation();
      for (      claymore j : plugin.clays) {
        if (j.b.getLocation().add(0.5,0,0.5).distance(l) < 1) {
          j.setOwner((Player)((Arrow)i).getShooter(),plugin.p((Player)((Arrow)i).getShooter()));
          j.kill();
          r.add(j);
        }
      }
      if (ploc.containsKey(i)) {
        if (l.distance(ploc.get(i)) < 0.1) {
          r2.add(i);
          for (          chopper j : plugin.choppers) {
            if (j.l.distance(l) < 1.5) {
              j.arrowhit();
            }
          }
        }
      }
      ploc.put((Arrow)i,l);
    }
 else     if (i instanceof Item) {
      int itemId=((EntityItem)((CraftEntity)i).getHandle()).itemStack.id;
      if (!plugin.playerListener.allowed_pickup.contains(Material.getMaterial(itemId))) {
        r2.add(i);
      }
    }
 else     if (i instanceof Creature && !(i instanceof Wolf)) {
      r2.add(i);
    }
    for (    Entity j : r2) {
      j.remove();
    }
  }
  for (  claymore i : plugin.clays) {
    if (i.init < new Date().getTime() && i.b.getType() != Material.WALL_SIGN) {
      i.b.setType(Material.WALL_SIGN);
switch (i.r) {
case 1:
        i.b.setData((byte)4);
      break;
case 2:
    i.b.setData((byte)2);
  break;
case 3:
i.b.setData((byte)5);
break;
case 4:
i.b.setData((byte)3);
break;
}
if (i.b.getState() instanceof Sign) {
Sign s=(Sign)i.b.getState();
s.setLine(0,getClaymoreText(i.getOwner()));
s.setLine(3,getClaymoreText(i.getOwner()));
s.setLine(1,"String_Node_Str");
s.setLine(2,"String_Node_Str");
s.update();
}
}
if (i.exploded && i.explode < new Date().getTime()) {
i.kill();
r.add(i);
}
}
plugin.clays.removeAll(r);
}

Fixed version (ground truth):
public void tickfast(){
  List<claymore> r=new ArrayList<claymore>();
  List<Entity> r2=new ArrayList<Entity>();
  for (  Entity i : plugin.currentWorld.getEntities()) {
    if (i instanceof Arrow) {
      Location l=i.getLocation();
      for (      claymore j : plugin.clays) {
        if (j.b.getLocation().add(0.5,0,0.5).distance(l) < 1) {
          j.setOwner((Player)((Arrow)i).getShooter(),plugin.p((Player)((Arrow)i).getShooter()));
          j.kill();
          r.add(j);
        }
      }
      if (!floc.containsKey(i)) {
        floc.put((Arrow)i,i.getLocation());
      }
      if (ploc.containsKey(i)) {
        if (l.distance(ploc.get(i)) < 0.1) {
          r2.add(i);
          floc.remove(i);
          for (          chopper j : plugin.choppers) {
            if (j.l.distance(l) < 1.5) {
              j.arrowhit();
            }
          }
        }
      }
      ploc.put((Arrow)i,l);
    }
 else     if (i instanceof Item) {
      int itemId=((EntityItem)((CraftEntity)i).getHandle()).itemStack.id;
      if (!plugin.playerListener.allowed_pickup.contains(Material.getMaterial(itemId))) {
        r2.add(i);
      }
    }
 else     if (i instanceof Creature && !(i instanceof Wolf)) {
      r2.add(i);
    }
    for (    Entity j : r2) {
      j.remove();
    }
  }
  for (  claymore i : plugin.clays) {
    if (i.init < new Date().getTime() && i.b.getType() != Material.WALL_SIGN) {
      i.b.setType(Material.WALL_SIGN);
switch (i.r) {
case 1:
        i.b.setData((byte)4);
      break;
case 2:
    i.b.setData((byte)2);
  break;
case 3:
i.b.setData((byte)5);
break;
case 4:
i.b.setData((byte)3);
break;
}
if (i.b.getState() instanceof Sign) {
Sign s=(Sign)i.b.getState();
s.setLine(0,getClaymoreText(i.getOwner()));
s.setLine(3,getClaymoreText(i.getOwner()));
s.setLine(1,"String_Node_Str");
s.setLine(2,"String_Node_Str");
s.update();
}
}
if (i.exploded && i.explode < new Date().getTime()) {
i.kill();
r.add(i);
}
}
plugin.clays.removeAll(r);
}