)]}'
{
  "commit": "604cdb290a831411c7b58cb2636bb30df4e7a84b",
  "tree": "4134c90286399b8b6def95ef817f09f8f3de181c",
  "parents": [
    "1b435832b2c464053f7b47ced16722043567edf1"
  ],
  "author": {
    "name": "David Pursehouse",
    "email": "dpursehouse@collab.net",
    "time": "Wed Mar 22 13:28:28 2017 +0900"
  },
  "committer": {
    "name": "David Pursehouse",
    "email": "dpursehouse@collab.net",
    "time": "Wed Mar 22 13:28:28 2017 +0900"
  },
  "message": "Be more consistent about object ids used in ref operation validation\n\nIn CreateBranch, a RefUpdate is created with expectedOldObjectId set\nbut not oldObjectId. In DeleteBranch[es], none of expectedOldObjectId,\noldObjectId, and newObjectId is set.\n\nAs a result, when RefOperationValidators uses oldObjectId and\nnewObjectId to create a ReceiveCommand, they can be null, resulting in\nNullPointerException when a listener dereferences them.\n\nSo use expectedOldObjectId instead of oldObjectId in\nRefOperationValidators. Before a ref update has been performed, only\nthe former is meant to be set.\n\nIn DeleteBranch[es], set the expectedOldObjectId and the newObjectId\n(which is zero). This way, in RefOperationValidators we know both values\nwill always be set.\n\nBug: Issue 5817\nHelped-By: Jonathan Nieder \u003cjrn@google.com\u003e\nChange-Id: If1f3a6179fa789077731a16e4b731227a73be7f2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "769c7d27ac2049f35fd95b9396a0d4170b23b6c8",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/validators/RefOperationValidators.java",
      "new_id": "580de95e623d45654eade350d0885214b12cae0d",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/git/validators/RefOperationValidators.java"
    },
    {
      "type": "modify",
      "old_id": "091cba364f570415a2618cadd8d29eb3b4c241e1",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteBranch.java",
      "new_id": "732d47bb14dc9d5184b0a390440bf7368df94b27",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteBranch.java"
    },
    {
      "type": "modify",
      "old_id": "f4fa4468ee42c61664223a2d927c3d6ea1020e8f",
      "old_mode": 33188,
      "old_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteBranches.java",
      "new_id": "7d53fecc8b53b74b22364800caf81b2b51f52153",
      "new_mode": 33188,
      "new_path": "gerrit-server/src/main/java/com/google/gerrit/server/project/DeleteBranches.java"
    }
  ]
}
