)]}'
{
  "commit": "55d6fa4c352a1fadbd21b8d8e0929833e547b9e5",
  "tree": "2f84bbe0ee1129aa754a30603269e34656b30f07",
  "parents": [
    "65c18a21e7cb0d48327788df498f15ae195e9e3c"
  ],
  "author": {
    "name": "Alex Light",
    "email": "allight@google.com",
    "time": "Fri Dec 20 12:58:14 2019 -0800"
  },
  "committer": {
    "name": "Treehugger Robot",
    "email": "treehugger-gerrit@google.com",
    "time": "Tue Jan 07 19:43:10 2020 +0000"
  },
  "message": "Remove finalizable restriction on structural redefinition\n\nPreviously we restricted performing structural redefinition of classes\nwith finalizers. We did this because we need to be careful that\nfinalizers are not run on any obsolete objects and are run on the\nreplaced objects. This fixes these issues and removes the restriction.\n\nNote that the objects of classes that were initially non-finalizable\nand then redefined to be finalize able will never be called. This is\n(technically) compliant with the spec and avoids issues around safely\ncreating finalizer references. See comment in ti_redefine.cc for more\ninformation.\n\nTest: ./test.py --host\nBug: 134162467\nChange-Id: I51d4de3d15833dce989cd1e44c32b0e6a57f063a\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c505933853b7a5fa083fd0ac5875022a30cf42bc",
      "old_mode": 33188,
      "old_path": "openjdkjvmti/ti_redefine.cc",
      "new_id": "dccc226f602e7139d1d5753e55d937465ceebeea",
      "new_mode": 33188,
      "new_path": "openjdkjvmti/ti_redefine.cc"
    },
    {
      "type": "modify",
      "old_id": "338928ec16aafe939dc7059adb8d110fd7f70750",
      "old_mode": 33188,
      "old_path": "runtime/entrypoints/entrypoint_utils-inl.h",
      "new_id": "1e422014dd45288bf67a6399f1a00450aed03593",
      "new_mode": 33188,
      "new_path": "runtime/entrypoints/entrypoint_utils-inl.h"
    },
    {
      "type": "modify",
      "old_id": "28612443be26e85fa011141f53afc8505249754e",
      "old_mode": 33188,
      "old_path": "runtime/mirror/class-alloc-inl.h",
      "new_id": "5627b4956e86a2f7ea650194ee9b4b09f4953948",
      "new_mode": 33188,
      "new_path": "runtime/mirror/class-alloc-inl.h"
    },
    {
      "type": "modify",
      "old_id": "b600c43fe39fd66f0ce9f2be87c60a85a6450a2e",
      "old_mode": 33188,
      "old_path": "runtime/mirror/class.h",
      "new_id": "3e24346bf31422c23e2bcfdaa9dcab136b772a72",
      "new_mode": 33188,
      "new_path": "runtime/mirror/class.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "e9653575c113eab156b822899f1b1c220cf198e7",
      "new_mode": 33188,
      "new_path": "test/2006-virtual-structural-finalizing/expected.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e5291df874501215a7d65bd3cd4fd6b5b5701ff",
      "new_mode": 33188,
      "new_path": "test/2006-virtual-structural-finalizing/info.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "03e41a58e77487fa352e8024415b3c1817735d70",
      "new_mode": 33261,
      "new_path": "test/2006-virtual-structural-finalizing/run"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "11f9aa7e1e7b4f7d91c53944129daeafa08c79e3",
      "new_mode": 33188,
      "new_path": "test/2006-virtual-structural-finalizing/src-art/Main.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "81eaf31bbb9c4f7de7fcb9e0ca577be4ade2612a",
      "new_mode": 40960,
      "new_path": "test/2006-virtual-structural-finalizing/src-art/art/Redefinition.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "27102dc0d9291001a98d544ce52147df20a7c704",
      "new_mode": 33188,
      "new_path": "test/2006-virtual-structural-finalizing/src-art/art/Test2006.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89b8557970a5d7129bad60b7a4742152e44a9b76",
      "new_mode": 33188,
      "new_path": "test/2006-virtual-structural-finalizing/src/Main.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "781fc9ae5d9ac02a3ced255ffcc89d126d1bb895",
      "new_mode": 33188,
      "new_path": "test/2007-virtual-structural-finalizable/expected.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "3e5291df874501215a7d65bd3cd4fd6b5b5701ff",
      "new_mode": 33188,
      "new_path": "test/2007-virtual-structural-finalizable/info.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "03e41a58e77487fa352e8024415b3c1817735d70",
      "new_mode": 33261,
      "new_path": "test/2007-virtual-structural-finalizable/run"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ab8daeacad5c2de9980dbed73037961e0665090d",
      "new_mode": 33188,
      "new_path": "test/2007-virtual-structural-finalizable/src-art/Main.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "81eaf31bbb9c4f7de7fcb9e0ca577be4ade2612a",
      "new_mode": 40960,
      "new_path": "test/2007-virtual-structural-finalizable/src-art/art/Redefinition.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "08e05f5d9c3ba6e0df61f82f82def03d19db6af7",
      "new_mode": 33188,
      "new_path": "test/2007-virtual-structural-finalizable/src-art/art/Test2007.java"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "89b8557970a5d7129bad60b7a4742152e44a9b76",
      "new_mode": 33188,
      "new_path": "test/2007-virtual-structural-finalizable/src/Main.java"
    }
  ]
}
