)]}'
{
  "commit": "dd65cdc000632675a12564d6b1b258e53cbfa92f",
  "tree": "551f28dd9549d1d48886ca8e4283bfffadf5fa46",
  "parents": [
    "93e035b6186574104cf04c2caf101028a903c42f"
  ],
  "author": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Wed Jan 13 09:16:49 2021 +0100"
  },
  "committer": {
    "name": "Edwin Kempin",
    "email": "ekempin@google.com",
    "time": "Fri Jan 15 15:26:40 2021 +0100"
  },
  "message": "Treat uncaught InvalidPathExceptions as \u0027409 Conflict\u0027\n\nIf there is an invalid path Paths.get(path) throws an\nInvalidPathException. This is a RuntimeException that currently results\nin \u0027500 Internal Server Error\u0027, not telling the user what is wrong. By\nhandling this exception the user gets a better error message, e.g.\ntelling which path is considered as invalid.\n\nE.g. InvalidPathExceptions may be thrown for paths that contain unicode\ncharacters. Whether unicode characters in file names trigger this\nexception depends on the local environment of the system that is\nrunning Gerrit (local encoding and locale settings), but we haven\u0027t\nfigured out yet which system properties matter here (e.g. unicode\ncharacters in file names work fine for me when I run tests from Eclipse,\nbut not when I run the same test via Bazel from the commandline). Since\nthe behaviour depends on the local system we do not have any\nintegration test for the code handling InvalidPathExceptions.\n\nOnce we figure out which system properties are relevant here, we will\nset them in the test environment and then we can have tests with unicode\ncharacters in filenames. Until then the best we can do is being\ntransparant to users that unicode paths do not work.\n\nSigned-off-by: Edwin Kempin \u003cekempin@google.com\u003e\nChange-Id: I34f0cd30926e02d577480e8efc619ca47b69c821\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "53d7cd225861659365fc36c0b69c31270a83277c",
      "old_mode": 33188,
      "old_path": "java/com/google/gerrit/plugins/codeowners/backend/CodeOwnersExceptionHook.java",
      "new_id": "8a2e85e1b6b8bd505cd9c661b548c4c25ae09355",
      "new_mode": 33188,
      "new_path": "java/com/google/gerrit/plugins/codeowners/backend/CodeOwnersExceptionHook.java"
    },
    {
      "type": "modify",
      "old_id": "e05f8cdba74fbeba264276f93b915f9c3220523d",
      "old_mode": 33188,
      "old_path": "javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnersExceptionHookTest.java",
      "new_id": "c727080612dd918471c08e7976ebb170300791fc",
      "new_mode": 33188,
      "new_path": "javatests/com/google/gerrit/plugins/codeowners/backend/CodeOwnersExceptionHookTest.java"
    }
  ]
}
