Program: 173664
Project: 173664
Buggy source:
@SuppressWarnings("String_Node_Str") public static Game load(String filepath){
  Game game=null;
  log.debug("String_Node_Str" + filepath);
  String filename=filepath.replaceAll("String_Node_Str","String_Node_Str");
  try {
    ObjectInputStream ois=new ObjectInputStream(new FileInputStream(new File(filepath)));
    Object object=ois.readObject();
    if (object instanceof String) {
      log.info("String_Node_Str" + (String)object + "String_Node_Str"+ filename);
      object=ois.readObject();
    }
 else {
      log.info("String_Node_Str" + filename);
    }
    if (object instanceof String) {
      log.info("String_Node_Str" + (String)object);
      object=ois.readObject();
    }
    long versionID=(Long)object;
    log.debug("String_Node_Str" + versionID + "String_Node_Str"+ object+ "String_Node_Str");
    long saveFileVersionID=GameManager.saveFileVersionID;
    if (versionID != saveFileVersionID) {
      throw new Exception("String_Node_Str" + versionID + "String_Node_Str"+ saveFileVersionID);
    }
    String name=(String)ois.readObject();
    log.debug("String_Node_Str" + name);
    Map<String,String> selectedGameOptions=(Map<String,String>)ois.readObject();
    List<String> playerNames=(List<String>)ois.readObject();
    game=new Game(name,playerNames,selectedGameOptions);
    if (!game.setup()) {
      throw new ConfigurationException("String_Node_Str" + name);
    }
    String startError=game.start();
    if (startError != null) {
      DisplayBuffer.add(startError);
      return null;
    }
    GameManagerI gameManager=game.getGameManager();
    int numberOfActions=0;
    log.debug("String_Node_Str");
    Object actionObject=null;
    while (true) {
      try {
        actionObject=ois.readObject();
      }
 catch (      EOFException e) {
        break;
      }
      if (actionObject instanceof List) {
        List<PossibleAction> executedActions=(List<PossibleAction>)actionObject;
        numberOfActions=executedActions.size();
        for (        PossibleAction action : executedActions) {
          if (!gameManager.processOnReload(action)) {
            log.error("String_Node_Str");
            DisplayBuffer.add(LocalText.getText("String_Node_Str"));
            break;
          }
        }
      }
 else       if (actionObject instanceof PossibleAction) {
        while (actionObject instanceof PossibleAction) {
          numberOfActions++;
          if (!gameManager.processOnReload((PossibleAction)actionObject)) {
            log.error("String_Node_Str");
            DisplayBuffer.add(LocalText.getText("String_Node_Str"));
            break;
          }
          try {
            actionObject=ois.readObject();
          }
 catch (          EOFException e) {
            break;
          }
        }
      }
      break;
    }
    if (actionObject instanceof SortedMap) {
      ReportBuffer.setCommentItems((SortedMap<Integer,String>)actionObject);
      log.debug("String_Node_Str");
    }
 else {
      try {
        object=ois.readObject();
        if (object instanceof SortedMap) {
          ReportBuffer.setCommentItems((SortedMap<Integer,String>)object);
        }
      }
 catch (      EOFException e) {
      }
    }
    ois.close();
    game.getGameManager().finishLoading();
    return game;
  }
 catch (  Exception e) {
    log.error("String_Node_Str",e);
    DisplayBuffer.add(LocalText.getText("String_Node_Str",e.getMessage()));
  }
  return null;
}

Fixed version (ground truth):
@SuppressWarnings("String_Node_Str") public static Game load(String filepath){
  Game game=null;
  log.debug("String_Node_Str" + filepath);
  String filename=filepath.replaceAll("String_Node_Str","String_Node_Str");
  try {
    ObjectInputStream ois=new ObjectInputStream(new FileInputStream(new File(filepath)));
    Object object=ois.readObject();
    if (object instanceof String) {
      log.info("String_Node_Str" + (String)object + "String_Node_Str"+ filename);
      object=ois.readObject();
    }
 else {
      log.info("String_Node_Str" + filename);
    }
    if (object instanceof String) {
      log.info("String_Node_Str" + (String)object);
      object=ois.readObject();
    }
    long versionID=(Long)object;
    log.debug("String_Node_Str" + versionID + "String_Node_Str"+ object+ "String_Node_Str");
    long saveFileVersionID=GameManager.saveFileVersionID;
    if (versionID != saveFileVersionID) {
      throw new Exception("String_Node_Str" + versionID + "String_Node_Str"+ saveFileVersionID);
    }
    String name=(String)ois.readObject();
    log.debug("String_Node_Str" + name);
    Map<String,String> selectedGameOptions=(Map<String,String>)ois.readObject();
    List<String> playerNames=(List<String>)ois.readObject();
    game=new Game(name,playerNames,selectedGameOptions);
    if (!game.setup()) {
      throw new ConfigurationException("String_Node_Str" + name);
    }
    String startError=game.start();
    if (startError != null) {
      DisplayBuffer.add(startError);
      return null;
    }
    GameManagerI gameManager=game.getGameManager();
    int numberOfActions=0;
    log.debug("String_Node_Str");
    Object actionObject=null;
    while (true) {
      try {
        actionObject=ois.readObject();
      }
 catch (      EOFException e) {
        break;
      }
      if (actionObject instanceof List) {
        List<PossibleAction> executedActions=(List<PossibleAction>)actionObject;
        numberOfActions=executedActions.size();
        for (        PossibleAction action : executedActions) {
          if (!gameManager.processOnReload(action)) {
            log.error("String_Node_Str");
            DisplayBuffer.add(LocalText.getText("String_Node_Str"));
            break;
          }
        }
      }
 else       if (actionObject instanceof PossibleAction) {
        while (actionObject instanceof PossibleAction) {
          numberOfActions++;
          if (!gameManager.processOnReload((PossibleAction)actionObject)) {
            log.error("String_Node_Str");
            DisplayBuffer.add(LocalText.getText("String_Node_Str"));
            break;
          }
          try {
            actionObject=ois.readObject();
          }
 catch (          EOFException e) {
            break;
          }
        }
      }
      break;
    }
    if (actionObject instanceof SortedMap) {
      ReportBuffer.setCommentItems((SortedMap<Integer,String>)actionObject);
      log.debug("String_Node_Str");
    }
 else {
      try {
        object=ois.readObject();
        if (object instanceof SortedMap) {
          ReportBuffer.setCommentItems((SortedMap<Integer,String>)object);
        }
      }
 catch (      IOException e) {
      }
    }
    ois.close();
    game.getGameManager().finishLoading();
    return game;
  }
 catch (  Exception e) {
    log.error("String_Node_Str",e);
    DisplayBuffer.add(LocalText.getText("String_Node_Str",e.getMessage()));
  }
  return null;
}