)]}'
{
  "commit": "a12e970cdfd722f4957cb25cc5e212634408be57",
  "tree": "9932094bf99e54793de1ac0ae9bd68575fde6884",
  "parents": [
    "0a4f1e2895eba66c95a1939a9d83d908439f991b"
  ],
  "author": {
    "name": "Protobuf Team Bot",
    "email": "protobuf-github-bot@google.com",
    "time": "Tue Nov 03 07:23:19 2026 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Nov 03 07:29:21 2026 -0800"
  },
  "message": "Preserve singleton identity across Java serialization for large_enum in full runtime\n\nClasses generated by `GenerateLarge` (`option features.(pb.java).large_enum \u003d true`) in the full runtime implement `java.io.Serializable` to emulate standard Java `enum` types, but previously omitted `readResolve()`. As a result, deserializing a `large_enum` value via `ObjectInputStream` allocated a new instance on the heap instead of returning the canonical constant, breaking `\u003d\u003d` reference equality.\n\n- Emit `private java.lang.Object readResolve() throws java.io.ObjectStreamException` in `GenerateLarge` for the full runtime (`!context-\u003eEnforceLite()`) to resolve deserialized instances via `\"UNRECOGNIZED\".equals(name)` (for `UNRECOGNIZED`, avoiding collisions with valid `-1` enum constants) and `forNumber(value)` (falling back to `UNRECOGNIZED`).\n- Add a serialization round-trip test in `LargeEnumTest` covering canonical constants, aliases, negative wire values (`-1`), and `UNRECOGNIZED`.\n\nPiperOrigin-RevId: 1012993306\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9c55c965fe3275d8e03d80abfea59c3a508e446b",
      "old_mode": 33188,
      "old_path": "java/core/src/test/java/com/google/protobuf/LargeEnumTest.java",
      "new_id": "17555861443a3362f85f88cd408b06c788c989b7",
      "new_mode": 33188,
      "new_path": "java/core/src/test/java/com/google/protobuf/LargeEnumTest.java"
    },
    {
      "type": "modify",
      "old_id": "0da16abde55c2de9068b1f701edeb08fad096687",
      "old_mode": 33188,
      "old_path": "src/google/protobuf/compiler/java/internal_helpers.cc",
      "new_id": "4c4d09c212d4dfdda9bc6e09f1069198516117c0",
      "new_mode": 33188,
      "new_path": "src/google/protobuf/compiler/java/internal_helpers.cc"
    }
  ]
}
