Program: 171414
Project: 171414
Buggy source:
public static void addFetishes(GameCharacter character){
  List<Fetish> fetishes=new ArrayList<>();
  for (  Fetish f : Fetish.values()) {
    if (f == Fetish.FETISH_PURE_VIRGIN) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_BIMBO) {
      if (character.isFeminine())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_PREGNANCY) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_IMPREGNATION) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_SEEDER) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_BROODMOTHER) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_CUM_STUD) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_NON_CON) {
      if (Main.game.getPlayer().hasFetish(Fetish.FETISH_NON_CON))       fetishes.add(f);
    }
 else     if (f.getFetishesForAutomaticUnlock().isEmpty()) {
      fetishes.add(f);
    }
  }
  double randomNumber=Math.random();
  if (randomNumber > 0.8f) {
    Fetish f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
 else   if (randomNumber > 0.6f) {
    Fetish f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
 else   if (randomNumber > 0.2f) {
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
}

Fixed version (ground truth):
public static void addFetishes(GameCharacter character){
  List<Fetish> fetishes=new ArrayList<>();
  for (  Fetish f : Fetish.values()) {
    if (f == Fetish.FETISH_PURE_VIRGIN) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_BIMBO) {
      if (character.isFeminine())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_PREGNANCY) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_IMPREGNATION) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_SEEDER) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_BROODMOTHER) {
      if (character.hasVagina())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_CUM_STUD) {
      if (character.hasPenis())       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_NON_CON) {
      if (Main.game.getPlayer().hasFetish(Fetish.FETISH_NON_CON))       fetishes.add(f);
    }
 else     if (f == Fetish.FETISH_BREASTS_SELF) {
      if (character.hasBreasts())       fetishes.add(f);
    }
 else     if (f.getFetishesForAutomaticUnlock().isEmpty()) {
      fetishes.add(f);
    }
  }
  double randomNumber=Math.random();
  if (randomNumber > 0.8f) {
    Fetish f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
 else   if (randomNumber > 0.6f) {
    Fetish f=fetishes.get(Util.random.nextInt(fetishes.size()));
    character.addFetish(f);
    fetishes.remove(f);
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
 else   if (randomNumber > 0.2f) {
    character.addFetish(fetishes.get(Util.random.nextInt(fetishes.size())));
  }
}