Program: 171285
Project: 171285
Buggy source:
private static List<BodyCoveringType> setCoveringColours(Body body,GameCharacter character,List<BodyCoveringType> typesToInfluence){
  List<BodyCoveringType> tempList=new ArrayList<>(typesToInfluence);
  for (  BodyPartInterface bp : character.getAllBodyParts()) {
    if (bp.getType().getBodyCoveringType() != null && bp.getType().getBodyCoveringType().getRace() != null && !(bp instanceof Eye)) {
      if (tempList.contains(bp.getType().getBodyCoveringType())) {
        Covering covering=character.getCovering(bp.getType().getBodyCoveringType());
        body.getCoverings().put(bp.getType().getBodyCoveringType(),new Covering(covering.getType(),covering.getPattern(),covering.getModifier(),covering.getPrimaryColour(),covering.isPrimaryGlowing(),covering.getSecondaryColour(),covering.isSecondaryGlowing()));
        tempList.remove(bp.getType().getBodyCoveringType());
      }
    }
  }
  List<BodyCoveringType> extraCoverings=new ArrayList<>();
  extraCoverings.add(BodyCoveringType.ANUS);
  extraCoverings.add(BodyCoveringType.NIPPLES);
  extraCoverings.add(BodyCoveringType.MOUTH);
  extraCoverings.add(BodyCoveringType.TONGUE);
  for (  BodyCoveringType bct : extraCoverings) {
    if (tempList.contains(bct)) {
      Covering covering=character.getCovering(bct);
      body.getCoverings().put(bct,new Covering(covering.getType(),covering.getPattern(),covering.getModifier(),covering.getPrimaryColour(),covering.isPrimaryGlowing(),covering.getSecondaryColour(),covering.isSecondaryGlowing()));
      tempList.remove(bct);
    }
  }
  return tempList;
}

Fixed version (ground truth):
private static List<BodyCoveringType> setCoveringColours(Body body,GameCharacter character,List<BodyCoveringType> typesToInfluence){
  List<BodyCoveringType> tempList=new ArrayList<>(typesToInfluence);
  for (  BodyPartInterface bp : character.getAllBodyParts()) {
    if (bp.getType().getBodyCoveringType(character) != null && bp.getType().getBodyCoveringType(character).getRace() != null && !(bp instanceof Eye)) {
      if (tempList.contains(bp.getType().getBodyCoveringType(character))) {
        Covering covering=character.getCovering(bp.getType().getBodyCoveringType(character));
        body.getCoverings().put(bp.getType().getBodyCoveringType(character),new Covering(covering.getType(),covering.getPattern(),covering.getModifier(),covering.getPrimaryColour(),covering.isPrimaryGlowing(),covering.getSecondaryColour(),covering.isSecondaryGlowing()));
        tempList.remove(bp.getType().getBodyCoveringType(character));
      }
    }
  }
  List<BodyCoveringType> extraCoverings=new ArrayList<>();
  extraCoverings.add(BodyCoveringType.ANUS);
  extraCoverings.add(BodyCoveringType.NIPPLES);
  extraCoverings.add(BodyCoveringType.MOUTH);
  extraCoverings.add(BodyCoveringType.TONGUE);
  for (  BodyCoveringType bct : extraCoverings) {
    if (tempList.contains(bct)) {
      Covering covering=character.getCovering(bct);
      body.getCoverings().put(bct,new Covering(covering.getType(),covering.getPattern(),covering.getModifier(),covering.getPrimaryColour(),covering.isPrimaryGlowing(),covering.getSecondaryColour(),covering.isSecondaryGlowing()));
      tempList.remove(bct);
    }
  }
  return tempList;
}