Program: 157740
Project: 157740
Buggy source:
private boolean priorityPlay(Game game){
  if (lastLoggedTurn != game.getTurnNum()) {
    lastLoggedTurn=game.getTurnNum();
    logger.info("String_Node_Str" + game.getTurnNum() + "String_Node_Str"+ game.getPlayer(game.getActivePlayerId()).getName()+ "String_Node_Str");
  }
  logState(game);
  logger.debug("String_Node_Str" + (game.getTurn().getStepType() + "String_Node_Str").substring(0,25) + "String_Node_Str"+ game.getPlayer(game.getActivePlayerId()).getName()+ "String_Node_Str"+ name);
  game.getState().setPriorityPlayerId(playerId);
  game.firePriorityEvent(playerId);
switch (game.getTurn().getStepType()) {
case UPKEEP:
case DRAW:
    pass(game);
  return false;
case PRECOMBAT_MAIN:
if (game.getActivePlayerId().equals(playerId)) {
  printOutState(game);
  if (actions.isEmpty()) {
    logger.info("String_Node_Str");
    calculateActions(game);
  }
  act(game);
  return true;
}
 else {
  pass(game);
}
return false;
case BEGIN_COMBAT:
pass(game);
return false;
case DECLARE_ATTACKERS:
if (!game.getActivePlayerId().equals(playerId)) {
printOutState(game);
if (actions.isEmpty()) {
logger.info("String_Node_Str");
calculateActions(game);
}
act(game);
return true;
}
 else {
pass(game);
}
return false;
case DECLARE_BLOCKERS:
case FIRST_COMBAT_DAMAGE:
case COMBAT_DAMAGE:
case END_COMBAT:
pass(game);
return false;
case POSTCOMBAT_MAIN:
printOutState(game);
if (actions.isEmpty()) {
calculateActions(game);
}
act(game);
return true;
case END_TURN:
case CLEANUP:
actionCache.clear();
pass(game);
return false;
}
return false;
}

Fixed version (ground truth):
private boolean priorityPlay(Game game){
  if (lastLoggedTurn != game.getTurnNum()) {
    lastLoggedTurn=game.getTurnNum();
    logger.info("String_Node_Str" + game.getTurnNum() + "String_Node_Str"+ game.getPlayer(game.getActivePlayerId()).getName()+ "String_Node_Str");
  }
  logState(game);
  logger.debug("String_Node_Str" + (game.getTurn().getStepType() + "String_Node_Str").substring(0,25) + "String_Node_Str"+ game.getPlayer(game.getActivePlayerId()).getName()+ "String_Node_Str"+ name);
  game.getState().setPriorityPlayerId(playerId);
  game.firePriorityEvent(playerId);
switch (game.getTurn().getStepType()) {
case UPKEEP:
case DRAW:
    pass(game);
  return false;
case PRECOMBAT_MAIN:
if (game.getActivePlayerId().equals(playerId)) {
  printOutState(game);
  if (actions.isEmpty()) {
    logger.info("String_Node_Str");
    calculateActions(game);
  }
  act(game);
  return true;
}
 else {
  pass(game);
}
return false;
case BEGIN_COMBAT:
pass(game);
return false;
case DECLARE_ATTACKERS:
if (!game.getActivePlayerId().equals(playerId)) {
printOutState(game);
if (actions.isEmpty()) {
logger.info("String_Node_Str");
calculateActions(game);
}
act(game);
return true;
}
 else {
pass(game);
}
return false;
case DECLARE_BLOCKERS:
printOutState(game);
if (actions.isEmpty()) {
calculateActions(game);
}
act(game);
return true;
case FIRST_COMBAT_DAMAGE:
case COMBAT_DAMAGE:
case END_COMBAT:
pass(game);
return false;
case POSTCOMBAT_MAIN:
printOutState(game);
if (actions.isEmpty()) {
calculateActions(game);
}
act(game);
return true;
case END_TURN:
case CLEANUP:
actionCache.clear();
pass(game);
return false;
}
return false;
}