Program: 173559
Project: 173559
Buggy source:
/** 
 * Deserialize 
 */
@SuppressWarnings("String_Node_Str") private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
  ObjectInputStream.GetField fields=in.readFields();
  locationNames=(String)fields.get("String_Node_Str",locationNames);
  tileColours=(Map<String,Integer>)fields.get("String_Node_Str",tileColours);
  tileIds=(int[])fields.get("String_Node_Str",tileIds);
  specialPropertyId=fields.get("String_Node_Str",specialPropertyId);
  laidTiled=fields.get("String_Node_Str",laidTiled);
  chosenHexName=(String)fields.get("String_Node_Str",chosenHexName);
  orientation=fields.get("String_Node_Str",orientation);
  relayBaseTokens=fields.get("String_Node_Str",relayBaseTokens);
  relaidBaseTokens=(Map<String,Integer>)fields.get("String_Node_Str",relaidBaseTokens);
  relaidBaseTokensString=(String)fields.get("String_Node_Str",relaidBaseTokensString);
  MapManager mmgr=gameManager.getMapManager();
  TileManager tmgr=gameManager.getTileManager();
  locations=new ArrayList<MapHex>();
  if (Util.hasValue(locationNames)) {
    for (    String hexName : locationNames.split("String_Node_Str")) {
      locations.add(mmgr.getHex(hexName));
    }
  }
  if (tileIds != null && tileIds.length > 0) {
    tiles=new ArrayList<Tile>();
    for (int i=0; i < tileIds.length; i++) {
      tiles.add(tmgr.getTile(tileIds[i]));
    }
  }
  if (specialPropertyId > 0) {
    specialProperty=(SpecialTileLay)SpecialProperty.getByUniqueId(specialPropertyId);
  }
  if (laidTiled != 0) {
    laidTile=tmgr.getTile(laidTiled);
  }
  if (chosenHexName != null && chosenHexName.length() > 0) {
    chosenHex=mmgr.getHex(chosenHexName);
  }
}

Fixed version (ground truth):
/** 
 * Deserialize 
 */
@SuppressWarnings("String_Node_Str") private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException {
  ObjectInputStream.GetField fields=in.readFields();
  locationNames=(String)fields.get("String_Node_Str",locationNames);
  tileColours=(Map<String,Integer>)fields.get("String_Node_Str",tileColours);
  tileIds=(int[])fields.get("String_Node_Str",tileIds);
  specialPropertyId=fields.get("String_Node_Str",specialPropertyId);
  laidTileId=fields.get("String_Node_Str",laidTileId);
  chosenHexName=(String)fields.get("String_Node_Str",chosenHexName);
  orientation=fields.get("String_Node_Str",orientation);
  relayBaseTokens=fields.get("String_Node_Str",relayBaseTokens);
  relaidBaseTokens=(Map<String,Integer>)fields.get("String_Node_Str",relaidBaseTokens);
  relaidBaseTokensString=(String)fields.get("String_Node_Str",relaidBaseTokensString);
  MapManager mmgr=gameManager.getMapManager();
  TileManager tmgr=gameManager.getTileManager();
  locations=new ArrayList<MapHex>();
  if (Util.hasValue(locationNames)) {
    for (    String hexName : locationNames.split("String_Node_Str")) {
      locations.add(mmgr.getHex(hexName));
    }
  }
  if (tileIds != null && tileIds.length > 0) {
    tiles=new ArrayList<Tile>();
    for (int i=0; i < tileIds.length; i++) {
      tiles.add(tmgr.getTile(tileIds[i]));
    }
  }
  if (specialPropertyId > 0) {
    specialProperty=(SpecialTileLay)SpecialProperty.getByUniqueId(specialPropertyId);
  }
  if (laidTileId != 0) {
    laidTile=tmgr.getTile(laidTileId);
  }
  if (chosenHexName != null && chosenHexName.length() > 0) {
    chosenHex=mmgr.getHex(chosenHexName);
  }
}