Program: 157929
Project: 157929
Buggy source:
public void sendUserReplay(PlayerAction playerAction,UserRequestMessage userRequestMessage){
switch (playerAction) {
case CLIENT_DOWNLOAD_SYMBOLS:
    Plugins.instance.downloadSymbols();
  break;
case CLIENT_DOWNLOAD_CARD_IMAGES:
DownloadPictures.startDownload(null,missingCards);
break;
case CLIENT_DISCONNECT:
if (SessionHandler.isConnected()) {
endTables();
SessionHandler.disconnect(false);
}
tablesPane.clearChat();
showMessage("String_Node_Str");
setWindowTitle();
break;
case CLIENT_QUIT_TOURNAMENT:
SessionHandler.quitTournament(userRequestMessage.getTournamentId());
break;
case CLIENT_QUIT_DRAFT_TOURNAMENT:
SessionHandler.quitDraft(userRequestMessage.getTournamentId());
MageFrame.removeDraft(userRequestMessage.getTournamentId());
break;
case CLIENT_CONCEDE_GAME:
SessionHandler.sendPlayerAction(PlayerAction.CONCEDE,userRequestMessage.getGameId(),null);
break;
case CLIENT_CONCEDE_MATCH:
SessionHandler.quitMatch(userRequestMessage.getGameId());
break;
case CLIENT_STOP_WATCHING:
SessionHandler.stopWatching(userRequestMessage.getGameId());
GamePanel gamePanel=getGame(userRequestMessage.getGameId());
if (gamePanel != null) {
gamePanel.removeGame();
}
removeGame(userRequestMessage.getGameId());
break;
case CLIENT_EXIT:
if (SessionHandler.isConnected()) {
endTables();
SessionHandler.disconnect(false);
}
CardRepository.instance.closeDB();
tablesPane.cleanUp();
Plugins.instance.shutdown();
dispose();
System.exit(0);
break;
case CLIENT_REMOVE_TABLE:
SessionHandler.removeTable(userRequestMessage.getRoomId(),userRequestMessage.getTableId());
break;
case CLIENT_RECONNECT:
if (performConnect(true)) {
enableButtons();
}
break;
case CLIENT_REPLAY_ACTION:
SessionHandler.stopReplay(userRequestMessage.getGameId());
break;
default :
if (SessionHandler.getSession() != null && playerAction != null) {
SessionHandler.sendPlayerAction(playerAction,userRequestMessage.getGameId(),userRequestMessage.getRelatedUserId());
}
}
}

Fixed version (ground truth):
public void sendUserReplay(PlayerAction playerAction,UserRequestMessage userRequestMessage){
switch (playerAction) {
case CLIENT_DOWNLOAD_SYMBOLS:
    Plugins.instance.downloadSymbols();
  break;
case CLIENT_DOWNLOAD_CARD_IMAGES:
DownloadPictures.startDownload(null,missingCards);
break;
case CLIENT_DISCONNECT:
if (SessionHandler.isConnected()) {
SessionHandler.disconnect(false);
}
tablesPane.clearChat();
showMessage("String_Node_Str");
setWindowTitle();
break;
case CLIENT_QUIT_TOURNAMENT:
SessionHandler.quitTournament(userRequestMessage.getTournamentId());
break;
case CLIENT_QUIT_DRAFT_TOURNAMENT:
SessionHandler.quitDraft(userRequestMessage.getTournamentId());
MageFrame.removeDraft(userRequestMessage.getTournamentId());
break;
case CLIENT_CONCEDE_GAME:
SessionHandler.sendPlayerAction(PlayerAction.CONCEDE,userRequestMessage.getGameId(),null);
break;
case CLIENT_CONCEDE_MATCH:
SessionHandler.quitMatch(userRequestMessage.getGameId());
break;
case CLIENT_STOP_WATCHING:
SessionHandler.stopWatching(userRequestMessage.getGameId());
GamePanel gamePanel=getGame(userRequestMessage.getGameId());
if (gamePanel != null) {
gamePanel.removeGame();
}
removeGame(userRequestMessage.getGameId());
break;
case CLIENT_EXIT:
if (SessionHandler.isConnected()) {
SessionHandler.disconnect(false);
}
CardRepository.instance.closeDB();
tablesPane.cleanUp();
Plugins.instance.shutdown();
dispose();
System.exit(0);
break;
case CLIENT_REMOVE_TABLE:
SessionHandler.removeTable(userRequestMessage.getRoomId(),userRequestMessage.getTableId());
break;
case CLIENT_RECONNECT:
if (performConnect(true)) {
enableButtons();
}
break;
case CLIENT_REPLAY_ACTION:
SessionHandler.stopReplay(userRequestMessage.getGameId());
break;
default :
if (SessionHandler.getSession() != null && playerAction != null) {
SessionHandler.sendPlayerAction(playerAction,userRequestMessage.getGameId(),userRequestMessage.getRelatedUserId());
}
}
}