Program: 158792
Project: 158792
Buggy source:
/** 
 * Add info about attacker blocked by blocker to the game log
 */
private void logBlockerInfo(Player defender,Game game){
  boolean shownDefendingPlayer=game.getPlayers().size() < 3;
  for (  CombatGroup group : this.getGroups()) {
    if (group.defendingPlayerId.equals(defender.getId())) {
      if (!shownDefendingPlayer) {
        game.informPlayers("String_Node_Str" + defender.getLogName());
        shownDefendingPlayer=true;
      }
      StringBuilder sb=new StringBuilder();
      boolean attackerExists=false;
      for (      UUID attackingCreatureId : group.getAttackers()) {
        attackerExists=true;
        Permanent attackingCreature=game.getPermanent(attackingCreatureId);
        if (attackingCreature != null) {
          sb.append("String_Node_Str");
          sb.append(attackingCreature.getLogName()).append("String_Node_Str");
          sb.append(attackingCreature.getPower().getValue()).append("String_Node_Str").append(attackingCreature.getToughness().getValue()).append("String_Node_Str");
        }
 else {
          attackingCreature=(Permanent)game.getLastKnownInformation(attackingCreatureId,Zone.BATTLEFIELD);
          if (attackingCreature != null) {
            sb.append(attackingCreature.getLogName()).append("String_Node_Str");
          }
        }
      }
      if (attackerExists) {
        if (group.getBlockers().size() > 0) {
          sb.append("String_Node_Str");
          for (          UUID blockingCreatureId : group.getBlockerOrder()) {
            Permanent blockingCreature=game.getPermanent(blockingCreatureId);
            if (blockingCreature != null) {
              sb.append(blockingCreature.getLogName()).append("String_Node_Str");
              sb.append(blockingCreature.getPower().getValue()).append("String_Node_Str").append(blockingCreature.getToughness().getValue()).append("String_Node_Str");
            }
          }
        }
 else {
          sb.append("String_Node_Str");
        }
      }
      game.informPlayers(sb.toString());
    }
  }
}

Fixed version (ground truth):
/** 
 * Add info about attacker blocked by blocker to the game log
 */
private void logBlockerInfo(Player defender,Game game){
  boolean shownDefendingPlayer=game.getPlayers().size() < 3;
  for (  CombatGroup group : game.getCombat().getGroups()) {
    if (group.defendingPlayerId.equals(defender.getId())) {
      if (!shownDefendingPlayer) {
        game.informPlayers("String_Node_Str" + defender.getLogName());
        shownDefendingPlayer=true;
      }
      StringBuilder sb=new StringBuilder();
      boolean attackerExists=false;
      for (      UUID attackingCreatureId : group.getAttackers()) {
        attackerExists=true;
        Permanent attackingCreature=game.getPermanent(attackingCreatureId);
        if (attackingCreature != null) {
          sb.append("String_Node_Str");
          sb.append(attackingCreature.getLogName()).append("String_Node_Str");
          sb.append(attackingCreature.getPower().getValue()).append("String_Node_Str").append(attackingCreature.getToughness().getValue()).append("String_Node_Str");
        }
 else {
          attackingCreature=(Permanent)game.getLastKnownInformation(attackingCreatureId,Zone.BATTLEFIELD);
          if (attackingCreature != null) {
            sb.append(attackingCreature.getLogName()).append("String_Node_Str");
          }
        }
      }
      if (attackerExists) {
        if (group.getBlockers().size() > 0) {
          sb.append("String_Node_Str");
          for (          UUID blockingCreatureId : group.getBlockerOrder()) {
            Permanent blockingCreature=game.getPermanent(blockingCreatureId);
            if (blockingCreature != null) {
              sb.append(blockingCreature.getLogName()).append("String_Node_Str");
              sb.append(blockingCreature.getPower().getValue()).append("String_Node_Str").append(blockingCreature.getToughness().getValue()).append("String_Node_Str");
            }
          }
        }
 else {
          sb.append("String_Node_Str");
        }
      }
      game.informPlayers(sb.toString());
    }
  }
}