)]}'
{
  "commit": "052407b9e7ceeb82bf2ea2b0d4812b257ffe9087",
  "tree": "a8128ffad4c5c0be6da7eda4c7a5ded7fcaee041",
  "parents": [
    "b6fc2d933ec76437129677d6e63eb1d435e379b6"
  ],
  "author": {
    "name": "Googler",
    "email": "shahan@google.com",
    "time": "Tue Mar 07 03:53:44 2023 -0800"
  },
  "committer": {
    "name": "Copybara-Service",
    "email": "copybara-worker@google.com",
    "time": "Tue Mar 07 03:55:05 2023 -0800"
  },
  "message": "Serialization Test fixes for JDK 21.\n\nImmutableMapCodecTest - was using getCanonicalName to retrieve the name\nof an anonymous inner class and was getting null, as is the defined\nbehavior for anonymous inner classes. Switching to getName fixes the test,\nwhich makes it consistent with production code anyway.\n\nMethodCodecTest - this seems like weird JDK21 behavior. Looking up methods\nreturned by Class.getMethods against the declaring classes does not return\nthe same method. In this case, in particular, String.class.getMethods includes\n\n  java.lang.String.resolveConstantDesc(java.lang.invoke.MethodHandles$Lookup)\n      throws java.lang.ReflectiveOperationException\n\nwhich is the method signature according to the ConstantDesc interface. Adding\nto the strangeness, calling getDeclaringClass returns String instead of\nConstantDesc.\n\nHowever, looking up the method with String.class.getDeclaredMethod by name and\nparameters, results in\n\n  java.lang.String.resolveConstantDesc(java.lang.invoke.MethodHandles$Lookup)\n\nwhich drops the ReflectiveOperationException. This is actually the proper\nsignature for strings. This difference shouldn\u0027t really matter for\nserialization correctness as long as both Method objects are invokable.\n\nChanging the test to serialize the result of looking up via getDeclaredMethod\ninstead of getMethods fixes it.\n\nPiperOrigin-RevId: 514686339\nChange-Id: I1eecae589858fc9296fedee49f810d56720d6ab2\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "26e092c2965eaaaf193a364a76fcb168c7abe498",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java",
      "new_id": "ff5009c3c80b9caa301d8eb017d3004ecdb37b20",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/serialization/ImmutableMapCodecTest.java"
    },
    {
      "type": "modify",
      "old_id": "08743310423de2d9931e5998e72712ec43d0d678",
      "old_mode": 33188,
      "old_path": "src/test/java/com/google/devtools/build/lib/skyframe/serialization/MethodCodecTest.java",
      "new_id": "1ff33fde8a9991ebb349a1db79e0f6d108189536",
      "new_mode": 33188,
      "new_path": "src/test/java/com/google/devtools/build/lib/skyframe/serialization/MethodCodecTest.java"
    }
  ]
}
