)]}'
{
  "commit": "40433c51b4826127535c76035a970ba688cac82b",
  "tree": "4940327b8d541b55d0833d32dc01143ad3f52bbd",
  "parents": [
    "7609530caaa260261a6302a4fb20fa6a26c65110"
  ],
  "author": {
    "name": "Steve Loughran",
    "email": "stevel@apache.org",
    "time": "Tue Sep 08 10:52:21 2026 +0100"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Sep 08 10:52:21 2026 +0100"
  },
  "message": "HADOOP-19930. ObjectWritable to validate class on load (#8640)\n\n\nNew reflection validation in ReflectionUtils\n-Pulls up class type checking to before actual class load; fails fast\n-Add check of array length.\n-Limit recursive depth to 100.\n\nThis is used in SequenceFile, InputSplits and elsewhere that\nWritable subclasses instantiate classes. \n\nContributed by Steve Loughran\nAssisted-by: Claude.ai\n\n\"This is Ripley, last survivor of the Nostromo, signing off.\"\n9589683f-369f-4a30-8c93-e9f5d04ceb5a",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8cf82f425090d46cce964c686b215492bd585e71",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/AbstractMapWritable.java",
      "new_id": "e166cb4082244d17a33f13e72b6634768beb1ffc",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/AbstractMapWritable.java"
    },
    {
      "type": "modify",
      "old_id": "f2c8b76e2ab70177c8491ada029a1214dbf3ddda",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/EnumSetWritable.java",
      "new_id": "22a3b61c403d501cfdf2625b61eb15f9cb5e387c",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/EnumSetWritable.java"
    },
    {
      "type": "modify",
      "old_id": "6de927467e478fed393b79b2edbf9c432f55dbc0",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/GenericWritable.java",
      "new_id": "7419d5d32b2849482a1e29a2c43cf5c21f8b7f53",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/GenericWritable.java"
    },
    {
      "type": "modify",
      "old_id": "831931bdace66d19eca7d61ec1f4802582a74e06",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/ObjectWritable.java",
      "new_id": "60e85bf126d0bda56abe7c952c4ef342ba102eef",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/ObjectWritable.java"
    },
    {
      "type": "modify",
      "old_id": "325820d11cc1cad4094398e73780f5622c561c90",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/SequenceFile.java",
      "new_id": "3f955cf5ca2a03fc72f37ef02fa25b106cc238ec",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/SequenceFile.java"
    },
    {
      "type": "modify",
      "old_id": "683d6c099b540e2b945d06574da23d8ebcfc4430",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableName.java",
      "new_id": "904803fb953539e9b3d2f5a21b1548123fda90a1",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/WritableName.java"
    },
    {
      "type": "modify",
      "old_id": "09dd10a46ef5e85493791880e995b27a73e0cd1f",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/TFile.java",
      "new_id": "102f67df81f7fd2afcbbd275b5c4b82de87be89d",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/io/file/tfile/TFile.java"
    },
    {
      "type": "modify",
      "old_id": "26bcd4a41cf8af9b4d9072d43424af2bda2fcb6f",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java",
      "new_id": "d4fc6186fbae145c43c0cb9d15e6b2316365ba0a",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ReflectionUtils.java"
    },
    {
      "type": "modify",
      "old_id": "70f97a395b651b8f5e59ea0a24e52886715f6b82",
      "old_mode": 33188,
      "old_path": "hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestGenericWritable.java",
      "new_id": "75d9a8a6ac1f7868dc17148bbe01bd20300bacf1",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestGenericWritable.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0f5839cff64cb8d8f75fc2edac12eba75b76969d",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestSequenceFileClassValidation.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "fb4f59eaac337866af5211f9d21cdf53468c0533",
      "new_mode": 33188,
      "new_path": "hadoop-common-project/hadoop-common/src/test/java/org/apache/hadoop/io/TestWritableClassValidation.java"
    },
    {
      "type": "modify",
      "old_id": "9f5336f3ebcb727f5119f75e5c2b9cc47bacf956",
      "old_mode": 33188,
      "old_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/join/CompositeInputSplit.java",
      "new_id": "01ec5ccb72fa53389bf8043bf952f4c9e633ff06",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/join/CompositeInputSplit.java"
    },
    {
      "type": "modify",
      "old_id": "494e1c10611c6e3bb2f19ddf37cbd95b3ecee6d2",
      "old_mode": 33188,
      "old_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/TaggedInputSplit.java",
      "new_id": "6b21b39a6db7d05aea210108b5062154b002318a",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/lib/TaggedInputSplit.java"
    },
    {
      "type": "modify",
      "old_id": "fd07d00fa7d02a9ec5978c41cee8cecae0fa8ed8",
      "old_mode": 33188,
      "old_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TaggedInputSplit.java",
      "new_id": "85c0aa8840eb0f607d8d1d24b938dc73e94798ab",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/input/TaggedInputSplit.java"
    },
    {
      "type": "modify",
      "old_id": "676209de118db77f785a4e89bc0b02a29bdf3d17",
      "old_mode": 33188,
      "old_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/CompositeInputSplit.java",
      "new_id": "3eed3a3be30d3b2df6663810c94e28f70d34bd2e",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/CompositeInputSplit.java"
    },
    {
      "type": "modify",
      "old_id": "c48f925b9833fb16385868dee73ef988e17bb62f",
      "old_mode": 33188,
      "old_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/TupleWritable.java",
      "new_id": "a15cb491df1178f16b05fa25f80b9361aa15ef76",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/lib/join/TupleWritable.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "118772001602ef8209a7f357a7d603f6c9ce48b5",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapred/lib/TestTaggedInputSplitValidation.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b1ee1a549562c88e2ed9b9f0971e04907398677d",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/lib/input/TestTaggedInputSplitValidation.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0fc965e01eeaf9a66b3f00e10e1ace9483fb15c2",
      "new_mode": 33188,
      "new_path": "hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/test/java/org/apache/hadoop/mapreduce/lib/join/TestJoinClassValidation.java"
    },
    {
      "type": "modify",
      "old_id": "7a088ed5ebffb6522f3a38e8c64acaa7d78bc400",
      "old_mode": 33188,
      "old_path": "hadoop-tools/hadoop-federation-balance/src/main/java/org/apache/hadoop/tools/fedbalance/procedure/BalanceJob.java",
      "new_id": "a70cd525787e040391ca1d43e552a3733b4b6798",
      "new_mode": 33188,
      "new_path": "hadoop-tools/hadoop-federation-balance/src/main/java/org/apache/hadoop/tools/fedbalance/procedure/BalanceJob.java"
    }
  ]
}
