)]}'
{
  "log": [
    {
      "commit": "93be70effba70b78596fc4bda6b583615c3b6d0c",
      "tree": "da679b13dee39a03f4854c53c0edcff4dddea0e9",
      "parents": [
        "55d6fa4c352a1fadbd21b8d8e0929833e547b9e5"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jan 07 17:05:42 2020 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 07 19:55:17 2020 +0000"
      },
      "message": "Revert^2 \"Make tests 1995, 2001, \u0026 2005 less likely to OOME.\"\n\nTest 2005 works by starting a bunch of threads, collecting all threads\nusing the thread-group, suspending them and then performing\nredefinition work. Unfortunately due to the API there is a race\nbetween figuring out how many threads their are and getting them with\nenumerate. In cases where enumerate is called with a larger array then\nneeded, due to some threads finishing (\u0027run\u0027 returning) the enumerate\ndoesn\u0027t fill in some of the array. This meant we called\nSuspendThreadList with \u0027null\u0027, which is interpreted as meaning the\ncurrent thread. This leads to a deadlock.\n\nThis reverts commit 01a09bfd3839401c32d537b9a03b7991c4ffd20c.\n\nBug: 147190668\nBug: 147278184\nTest: ./test.py --host\n\nReason for revert: Fixed issue causing occasional deadlock in test\n                   2005\n\nChange-Id: I01fb9f38c4516730821106ac291836eb61534a73\n"
    },
    {
      "commit": "01a09bfd3839401c32d537b9a03b7991c4ffd20c",
      "tree": "c338d3d3e1e380681abbb0d345f87b5f14f0b53d",
      "parents": [
        "3cf233bf7ec0ce2ee1b714257dfcbd77dcb5cb0f"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 07 14:29:22 2020 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Tue Jan 07 14:29:38 2020 +0000"
      },
      "message": "Revert \"Make tests 1995, 2001, \u0026 2005 less likely to OOME.\"\n\nThis reverts commit 455bb387134bda286799ed727d4b33762ef1d5b1.\n\nBug: 147190668\nBug: 147278184\n\nReason for revert: b/147278184\n\nChange-Id: I2f81641ed3c69825207f425036e47f37c0eed687\n"
    },
    {
      "commit": "455bb387134bda286799ed727d4b33762ef1d5b1",
      "tree": "15ebdabc63d2cb82cd19a02c3b30127ad98e7941",
      "parents": [
        "467defb0519f45bf4274f9321d826ae8544b9874"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jan 06 14:07:26 2020 -0800"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 07 09:56:27 2020 +0000"
      },
      "message": "Make tests 1995, 2001, \u0026 2005 less likely to OOME.\n\nIn some situations when run on a severly overloaded machine tests\n1995, 2001 and 2005 could fail due to OOMEs being thrown. Limit the\namount of memory the tests will use to prevent this from happening.\n\nTest: ./test.py --host\nBug: 147190668\nChange-Id: Ic5ea4405d6638c110456c3119b37c29d6f658bf7\n"
    },
    {
      "commit": "986914bfd60c1cace9726e9029598d72cbf279e1",
      "tree": "556e5549254e4d5b280a63451fa8673ab36fba7b",
      "parents": [
        "5697faba0e910374da285f5f848d2aaf7ee6ffec"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:12:25 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 19 17:15:48 2019 +0000"
      },
      "message": "Revert^4 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 2f8c1ac61b0c611d67badea70261c851ed19b82a.\n\nIf there were pending tasks to jit compile a method which is made\nobsolete the JIT would CHECK fail, since the newly obsolete method is\nmarked DontCompile. This didn\u0027t happen with non-structural\nredefinition since in that case the \u0027valid\u0027 ArtMethod always remains\nthe same.\n\nTo fix this we just have the JitTask check if the method it\u0027s\ncompiling is compilable and fail if it\u0027s not.\n\nReason for revert: Fixed JIT check failure.\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ib867b2de13bb4c2978b4538a5851c647caf0e1cc\n"
    },
    {
      "commit": "2f8c1ac61b0c611d67badea70261c851ed19b82a",
      "tree": "97f87c13f69d033cf3f4120af66a7c5391c2da35",
      "parents": [
        "96d8585ebb9e21fc27a59ddd4173ca62ad93c194"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:09:31 2019 +0000"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Nov 19 01:11:18 2019 +0000"
      },
      "message": "Revert^3 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20.\n\nReason for revert: Seems to be failing with `Check failed: method-\u003eIsCompilable()`\n\nTest: None\nBug: 134162467\nBug: 144168550\nBug: 144729319\nChange-Id: Ida9228fa171ae16d803b5ad4438e233a2ed4ffb2\n"
    },
    {
      "commit": "8ba9738d55c11dfb7f85a7de9b1d6a4e1225ad20",
      "tree": "5aabe6d6af38514af0822ab9529a39f542aaa175",
      "parents": [
        "0d508a01106746e0d8865752850f4f03bcce1e01"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Nov 18 17:52:55 2019 +0000"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 18 20:19:43 2019 +0000"
      },
      "message": "Revert^2 \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit d0e354e54da2f2e79b6fc2ff0e13d53c74976b08.\n\nWe were incorrectly continuing to use an ObjPtr over a suspend point\n(in this case a CollectGarbageInternal). This led for the ObjPtr to be\ninvalidated. Instead we should have been using a Handle (that already\nexists).\n\nReason for revert: Fixed stale ObjPtr use.\n\nTest: ./test.py --host\nTest: ./test/testrunner/run_build_test_target.py -j80 art-debug-gc\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: Ied9856a707d377e97d34c7450376caf2a0b83255\n"
    },
    {
      "commit": "d0e354e54da2f2e79b6fc2ff0e13d53c74976b08",
      "tree": "743c595ef2cd94f89b487974e698d18c7d297330",
      "parents": [
        "c0200a984cacb6c0911d046a018cd11c7d20646b"
      ],
      "author": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:37:50 2019 +0000"
      },
      "committer": {
        "name": "Nicolas Geoffray",
        "email": "ngeoffray@google.com",
        "time": "Mon Nov 18 08:38:15 2019 +0000"
      },
      "message": "Revert \"Initial support for adding virtuals with structural redefinition\"\n\nThis reverts commit 283bb322de84ac570b987c65a1015e2dbcbfad7c.\n\nReason for revert: Test flakes\n\nBug: 134162467\nBug: 144168550\nBug: 144590579\nChange-Id: I2259c030f03a72f6b7bcda10288bd23cb3258164\n"
    },
    {
      "commit": "283bb322de84ac570b987c65a1015e2dbcbfad7c",
      "tree": "18f5d68c78e56a2d398192c8340269a60706b7a0",
      "parents": [
        "2c5dfe16ab2b0f8fbd14dedc161eb4658a8673fc"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Oct 29 11:15:05 2019 -0700"
      },
      "committer": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Nov 16 00:26:03 2019 +0000"
      },
      "message": "Initial support for adding virtuals with structural redefinition\n\nInitial implementation of adding virtual methods and non-static fields\nusing structural redefinition. Currently this is limited to \u0027final\u0027,\nnon-finalizable classes. These restrictions will be removed or\nloosened in the future.\n\nAll non-collected instances of the redefined class will be made\nobsolete and reallocated. This can cause significant GC load.\n\nThis feature does not work with any of the -quick opcodes and should\nonly be used with dex files that haven\u0027t undergone dex2dex\ncompilation (that is --debuggable and BCP dex files).\n\nTest: ./test.py --host\nBug: 134162467\nBug: 144168550\n\nChange-Id: Ia401d97395cfe498eb849a661ea9a900dfaa6da3\n"
    }
  ]
}
