)]}'
{
  "commit": "322c1a9de17926826217c99ad2c825580651093c",
  "tree": "9ab04f7689be012426a0c8573d298a34f7d70ddb",
  "parents": [
    "e5d31d4016ee4567838b28a29708eb31ad5cb5c2"
  ],
  "author": {
    "name": "Ian (Hee) Cha",
    "email": "heec@google.com",
    "time": "Thu Aug 27 20:35:41 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 27 20:35:41 2026 +0000"
  },
  "message": "[8.8.0] Prevent NPE crash when updating `MODULE.bazel.lock` with `null` `Repo… (#30895)\n\n…RuleId`.\n\nWhen a lockfile contains an entry from before commit 3d60f1c or from a\nmerge conflict resolution that lacks `repoRuleId`, GSON deserializes\n`RepoSpec` with `repoRuleId \u003d null`. Later, when Bazel updates and\nwrites the lockfile in `BazelLockFileModule.updateLockfile`, serializing\n`RepoSpec` invokes `repoRuleId.toString()`, which throws an NPE\nresulting in a Bazel crash.\n\nNow we have proper `null`-safety checks in GSON TypeAdapters so that\nmalformed lockfile entries with `null` repoRuleId are cleanly reported.\n\nFixes https://github.com/bazelbuild/bazel/issues/24716\n\nPiperOrigin-RevId: 971891689\nChange-Id: I405c61d5c6f4d20b9908083099a1e64d7f571350\n\n\u003c!--\nThank you for contributing to Bazel!\nPlease read the contribution guidelines: https://bazel.build/contribute\n--\u003e\n\n### Description\n\u003c!--\nPlease provide a brief summary of the changes in this PR.\n--\u003e\n\n### Motivation\n\u003c!--\nWhy is this change important? Does it fix a specific bug or add a new\nfeature?\nIf this PR fixes an existing issue, please link it here (e.g. \"Fixes\n#1234\").\n--\u003e\n\n### Build API Changes\n\u003c!--\nDoes this PR affect the Build API? (e.g. Starlark API, providers,\ncommand-line flags, native rules)\nIf yes, please answer the following:\n1. Has this been discussed in a design doc or issue? (Please link it)\n2. Is the change backward compatible?\n3. If it\u0027s a breaking change, what is the migration plan?\n--\u003e\n\nNo\n\n### Checklist\n\n- [ ] I have added tests for the new use cases (if any).\n- [ ] I have updated the documentation (if applicable).\n\n### Release Notes\n\n\u003c!--\nIf this is a new feature, please add \u0027RELNOTES[NEW]: \u003cdescription\u003e\u0027\nhere.\nIf this is a breaking change, please add \u0027RELNOTES[INC]: \u003creason\u003e\u0027 here.\nIf this change should be mentioned in release notes, please add\n\u0027RELNOTES: \u003creason\u003e\u0027 here.\n--\u003e\n\nRELNOTES: None\n\nCommit\nhttps://github.com/bazelbuild/bazel/commit/a671c5e78f4a78196341cf3a487f62ff4101be4f\n\n---------\n\nCo-authored-by: twerth CA \u003ctwerth@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "3bbe7b0eeb6d90cccb83ffa026e20fc886a958ba",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunction.java",
      "new_id": "7b64a3799a756d85d69fa3461ad1adc0ed1d3d37",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileFunction.java"
    },
    {
      "type": "modify",
      "old_id": "c9bcf768feb1f470ef5c3d8d9784d186dce04d49",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java",
      "new_id": "75d16d1e447b412ec569e7d0c4e0f304e973808e",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModule.java"
    },
    {
      "type": "modify",
      "old_id": "433124f1061085237903a13966765b163cfac19d",
      "old_mode": 33188,
      "old_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java",
      "new_id": "dc478420fa2e1c6aabcffa9270346833a82fc631",
      "new_mode": 33188,
      "new_path": "src/main/java/com/google/devtools/build/lib/bazel/bzlmod/GsonTypeAdapterUtil.java"
    },
    {
      "type": "modify",
      "old_id": "1b3de52f088aeb414dc98d0b58c5d2bad9ecd931",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModuleTest.java",
      "new_id": "d57ea7fe8881bbe038148ca9e2510a504da73d3e",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/bazel/bzlmod/BazelLockFileModuleTest.java"
    }
  ]
}
