Program: 86915
Project: 86915
Buggy source:
/** 
 */
public InGameState(Players players,GameMap map,GameType gameType,GameServer server){
  this.players=players;
  this.server=server;
  this.network=server.getServer();
  this.clients=server.getClients();
  this.dispatcher=new EventDispatcher();
  this.game=new Game(server.getConfig(),players,gameType,map,dispatcher);
  this.listener=this.server.getProtocolListener();
  this.listener.setGame(this.game);
  loadProperties(map.getMapFileName(),game);
  this.nextGameStatUpdate=GAME_STAT_UPDATE;
  this.nextGamePartialStatUpdate=GAME_PARTIAL_STAT_UPDATE;
  this.statsMessage=new GameStatsMessage();
  this.partialStatsMessage=new GamePartialStatsMessage();
  this.dispatcher.addEventListener(PlayerKilledEvent.class,new PlayerKilledListener(){
    @Override @EventMethod public void onPlayerKilled(    PlayerKilledEvent event){
      PlayerKilledMessage msg=new PlayerKilledMessage();
      msg.deathType=event.getMeansOfDeath().netValue();
      msg.killedById=event.getKillerId();
      msg.playerId=event.getPlayer().getId();
      msg.posX=(short)event.getPos().x;
      msg.posY=(short)event.getPos().y;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(PlayerSpawnedEvent.class,new PlayerSpawnedListener(){
    @Override @EventMethod public void onPlayerSpawned(    PlayerSpawnedEvent event){
      PlayerSpawnedMessage msg=new PlayerSpawnedMessage();
      Player player=event.getPlayer();
      msg.playerId=player.getId();
      msg.posX=(short)event.getSpawnLocation().x;
      msg.posY=(short)event.getSpawnLocation().y;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(GameEndEvent.class,new GameEndListener(){
    @Override @EventMethod public void onGameEnd(    GameEndEvent event){
      if (!gameEnded) {
        GameEndedMessage msg=new GameEndedMessage();
        msg.stats=game.getNetGameStats();
        listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
        gameEnded=true;
      }
    }
  }
);
  this.dispatcher.addEventListener(RoundEndedEvent.class,new RoundEndedListener(){
    @Override @EventMethod public void onRoundEnded(    RoundEndedEvent event){
      RoundEndedMessage msg=new RoundEndedMessage();
      msg.stats=game.getNetGameStats();
      Team winner=event.getWinner();
      if (winner != null) {
        msg.winnerTeamId=winner.getId();
      }
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(RoundStartedEvent.class,new RoundStartedListener(){
    @Override @EventMethod public void onRoundStarted(    RoundStartedEvent event){
      RoundStartedMessage msg=new RoundStartedMessage();
      msg.gameState=game.getNetGameState();
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(BombPlantedEvent.class,new BombPlantedListener(){
    @Override @EventMethod public void onBombPlanted(    BombPlantedEvent event){
      int bombTargetId=event.getBombTarget() != null ? event.getBombTarget().getId() : Entity.INVALID_ENTITY_ID;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombPlantedMessage(bombTargetId));
    }
  }
);
  this.dispatcher.addEventListener(BombDisarmedEvent.class,new BombDisarmedListener(){
    @EventMethod @Override public void onBombDisarmedEvent(    BombDisarmedEvent event){
      int bombTargetId=event.getBombTarget() != null ? event.getBombTarget().getId() : Entity.INVALID_ENTITY_ID;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombDisarmedMessage(bombTargetId));
    }
  }
);
  this.dispatcher.addEventListener(BombExplodedMessage.class,new BombExplodedListener(){
    @EventMethod @Override public void onBombExplodedEvent(    BombExplodedEvent event){
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombExplodedMessage());
    }
  }
);
}

Fixed version (ground truth):
/** 
 */
public InGameState(Players players,final GameMap map,GameType gameType,GameServer server){
  this.players=players;
  this.server=server;
  this.network=server.getServer();
  this.clients=server.getClients();
  this.dispatcher=new EventDispatcher();
  this.game=new Game(server.getConfig(),players,gameType,map,dispatcher);
  this.listener=this.server.getProtocolListener();
  this.listener.setGame(this.game);
  loadProperties(map.getMapFileName(),game);
  this.nextGameStatUpdate=GAME_STAT_UPDATE;
  this.nextGamePartialStatUpdate=GAME_PARTIAL_STAT_UPDATE;
  this.statsMessage=new GameStatsMessage();
  this.partialStatsMessage=new GamePartialStatsMessage();
  this.dispatcher.addEventListener(PlayerKilledEvent.class,new PlayerKilledListener(){
    @Override @EventMethod public void onPlayerKilled(    PlayerKilledEvent event){
      PlayerKilledMessage msg=new PlayerKilledMessage();
      msg.deathType=event.getMeansOfDeath().netValue();
      msg.killedById=event.getKillerId();
      msg.playerId=event.getPlayer().getId();
      msg.posX=(short)event.getPos().x;
      msg.posY=(short)event.getPos().y;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(PlayerSpawnedEvent.class,new PlayerSpawnedListener(){
    @Override @EventMethod public void onPlayerSpawned(    PlayerSpawnedEvent event){
      PlayerSpawnedMessage msg=new PlayerSpawnedMessage();
      Player player=event.getPlayer();
      msg.playerId=player.getId();
      msg.posX=(short)event.getSpawnLocation().x;
      msg.posY=(short)event.getSpawnLocation().y;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(GameEndEvent.class,new GameEndListener(){
    @Override @EventMethod public void onGameEnd(    GameEndEvent event){
      if (!gameEnded) {
        GameEndedMessage msg=new GameEndedMessage();
        msg.stats=game.getNetGameStats();
        listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
        gameEnded=true;
      }
    }
  }
);
  this.dispatcher.addEventListener(RoundEndedEvent.class,new RoundEndedListener(){
    @Override @EventMethod public void onRoundEnded(    RoundEndedEvent event){
      RoundEndedMessage msg=new RoundEndedMessage();
      msg.stats=game.getNetGameStats();
      Team winner=event.getWinner();
      if (winner != null) {
        msg.winnerTeamId=winner.getId();
      }
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(RoundStartedEvent.class,new RoundStartedListener(){
    @Override @EventMethod public void onRoundStarted(    RoundStartedEvent event){
      loadProperties(map.getMapFileName(),game);
      RoundStartedMessage msg=new RoundStartedMessage();
      msg.gameState=game.getNetGameState();
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,msg);
    }
  }
);
  this.dispatcher.addEventListener(BombPlantedEvent.class,new BombPlantedListener(){
    @Override @EventMethod public void onBombPlanted(    BombPlantedEvent event){
      int bombTargetId=event.getBombTarget() != null ? event.getBombTarget().getId() : Entity.INVALID_ENTITY_ID;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombPlantedMessage(bombTargetId));
    }
  }
);
  this.dispatcher.addEventListener(BombDisarmedEvent.class,new BombDisarmedListener(){
    @EventMethod @Override public void onBombDisarmedEvent(    BombDisarmedEvent event){
      int bombTargetId=event.getBombTarget() != null ? event.getBombTarget().getId() : Entity.INVALID_ENTITY_ID;
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombDisarmedMessage(bombTargetId));
    }
  }
);
  this.dispatcher.addEventListener(BombExplodedMessage.class,new BombExplodedListener(){
    @EventMethod @Override public void onBombExplodedEvent(    BombExplodedEvent event){
      listener.queueSendToAll(Endpoint.FLAG_RELIABLE,new BombExplodedMessage());
    }
  }
);
}