Program: 158172
Project: 158172
Buggy source:
private void startGame(UUID choosingPlayerId) throws GameException {
  try {
    match.startGame();
    table.initGame();
    GameOptions gameOptions=new GameOptions();
    gameOptions.rollbackTurnsAllowed=match.getOptions().isRollbackTurnsAllowed();
    match.getGame().setGameOptions(gameOptions);
    GameManager.getInstance().createGameSession(match.getGame(),userPlayerMap,table.getId(),choosingPlayerId,gameOptions);
    String creator=null;
    StringBuilder opponent=new StringBuilder();
    for (    Entry<UUID,UUID> entry : userPlayerMap.entrySet()) {
      if (match.getPlayer(entry.getValue()) != null && !match.getPlayer(entry.getValue()).hasQuit()) {
        Optional<User> _user=UserManager.getInstance().getUser(entry.getKey());
        if (!_user.isPresent()) {
          User user=_user.get();
          user.ccGameStarted(match.getGame().getId(),entry.getValue());
          if (creator == null) {
            creator=user.getName();
          }
 else {
            if (opponent.length() > 0) {
              opponent.append("String_Node_Str");
            }
            opponent.append(user.getName());
          }
        }
 else {
          logger.error("String_Node_Str" + entry.getKey() + "String_Node_Str"+ entry.getValue());
          MatchPlayer matchPlayer=match.getPlayer(entry.getValue());
          if (matchPlayer != null && !matchPlayer.hasQuit()) {
            matchPlayer.setQuit(true);
          }
        }
      }
    }
    for (    MatchPlayer mPlayer : match.getPlayers()) {
      if (!mPlayer.getPlayer().isHuman()) {
        if (opponent.length() > 0) {
          opponent.append("String_Node_Str");
        }
        opponent.append(mPlayer.getName());
      }
    }
    ServerMessagesUtil.getInstance().incGamesStarted();
    logger.info("String_Node_Str" + (match.getGame() != null ? match.getGame().getId() : "String_Node_Str") + "String_Node_Str"+ match.getName()+ "String_Node_Str"+ creator+ "String_Node_Str"+ opponent.toString());
    logger.debug("String_Node_Str" + match.getId() + "String_Node_Str"+ match.getName()+ "String_Node_Str");
    if (match.getGame() != null) {
      logger.debug("String_Node_Str" + GameManager.getInstance().getChatId(match.getGame().getId()));
    }
  }
 catch (  Exception ex) {
    logger.fatal("String_Node_Str" + table.getId(),ex);
    if (table != null) {
      TableManager.getInstance().removeTable(table.getId());
    }
    if (match != null) {
      Game game=match.getGame();
      if (game != null) {
        GameManager.getInstance().removeGame(game.getId());
      }
    }
  }
}

Fixed version (ground truth):
private void startGame(UUID choosingPlayerId) throws GameException {
  try {
    match.startGame();
    table.initGame();
    GameOptions gameOptions=new GameOptions();
    gameOptions.rollbackTurnsAllowed=match.getOptions().isRollbackTurnsAllowed();
    match.getGame().setGameOptions(gameOptions);
    GameManager.getInstance().createGameSession(match.getGame(),userPlayerMap,table.getId(),choosingPlayerId,gameOptions);
    String creator=null;
    StringBuilder opponent=new StringBuilder();
    for (    Entry<UUID,UUID> entry : userPlayerMap.entrySet()) {
      if (match.getPlayer(entry.getValue()) != null && !match.getPlayer(entry.getValue()).hasQuit()) {
        Optional<User> _user=UserManager.getInstance().getUser(entry.getKey());
        if (_user.isPresent()) {
          User user=_user.get();
          user.ccGameStarted(match.getGame().getId(),entry.getValue());
          if (creator == null) {
            creator=user.getName();
          }
 else {
            if (opponent.length() > 0) {
              opponent.append("String_Node_Str");
            }
            opponent.append(user.getName());
          }
        }
 else {
          logger.error("String_Node_Str" + entry.getKey() + "String_Node_Str"+ entry.getValue());
          MatchPlayer matchPlayer=match.getPlayer(entry.getValue());
          if (matchPlayer != null && !matchPlayer.hasQuit()) {
            matchPlayer.setQuit(true);
          }
        }
      }
    }
    for (    MatchPlayer mPlayer : match.getPlayers()) {
      if (!mPlayer.getPlayer().isHuman()) {
        if (opponent.length() > 0) {
          opponent.append("String_Node_Str");
        }
        opponent.append(mPlayer.getName());
      }
    }
    ServerMessagesUtil.getInstance().incGamesStarted();
    logger.info("String_Node_Str" + (match.getGame() != null ? match.getGame().getId() : "String_Node_Str") + "String_Node_Str"+ match.getName()+ "String_Node_Str"+ creator+ "String_Node_Str"+ opponent.toString());
    logger.debug("String_Node_Str" + match.getId() + "String_Node_Str"+ match.getName()+ "String_Node_Str");
    if (match.getGame() != null) {
      logger.debug("String_Node_Str" + GameManager.getInstance().getChatId(match.getGame().getId()));
    }
  }
 catch (  Exception ex) {
    logger.fatal("String_Node_Str" + table.getId(),ex);
    if (table != null) {
      TableManager.getInstance().removeTable(table.getId());
    }
    if (match != null) {
      Game game=match.getGame();
      if (game != null) {
        GameManager.getInstance().removeGame(game.getId());
      }
    }
  }
}