)]}'
{
  "log": [
    {
      "commit": "df13240f4b9325b34d09e20cdac4e9a0b12ead61",
      "tree": "ed2e646165904d2e8c15210ddc84bfd98b8c8d9f",
      "parents": [
        "05727c50c8c329d03692ffe51dce453c54379d70"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 12:54:33 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Sep 29 13:09:58 2017 -0700"
      },
      "message": "Send ThreadEnd after clearing ThreadGroup.\n\nThe removal of a thread from it\u0027s thread group does cause managed code\nto execute so it could cause additional events to trigger in agents,\npotentially causing deadlocks. This changes where the event is\ntriggered to put it after the thread has been removed from its group.\n\nTest: ./test.py --host -j50\nBug: 67104807\n\nChange-Id: I53f53b2823835a9629842fb5c22079b3e42042d5\n"
    },
    {
      "commit": "c38c3699b8d91c837c0e590a618aeb4860eed5cc",
      "tree": "83e300a8f9b4c065e5467f5473e25bb2451481cc",
      "parents": [
        "a26e349b960a7b4c49929a5c4bcaff56e79fbe73"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Tue Jun 27 15:45:14 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Wed Jun 28 13:48:19 2017 -0700"
      },
      "message": "Add JVMTI breakpoint and SingleStep tests\n\nTests for functionality related to the can_generate_single_step_events\nand can_generate_breakpoint_events jvmti capabilities.\n\nBug: 62821960\nTest: ./test.py --host -j40\nTest: ./test/run-test --host --jvmti-step-stress 001-HelloWorld\nTest: ./test/run-test --host --jvmti-step-stress 914\nChange-Id: Id2a4db5a6de3a97726f03f5e735c2bb77dafe4ca\n"
    },
    {
      "commit": "7c95849fb89ccc49d601a34d09cb629f3feb4116",
      "tree": "35cfc6c854149f26bd95185878ba8b21f863a8a7",
      "parents": [
        "084fa370a14edc43dcf8ff4e454e04c863e1a130"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 16 08:59:19 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Mon Jun 19 15:40:26 2017 -0700"
      },
      "message": "Add tests for field access and modify JVMTI callbacks\n\nTest: ./test.py --host -j40\nChange-Id: Id0af65ef217f49dbef0ff09846d69113b1c786c5\n"
    },
    {
      "commit": "b7edcda968bb0cbaa69a3ad387fcd3194f5612be",
      "tree": "50748aac195d20a7e8f6d59a6e499f3fe69418de",
      "parents": [
        "049f2a58ea9276dfd162760271ad443570f2e660"
      ],
      "author": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Thu Apr 27 13:20:31 2017 -0700"
      },
      "committer": {
        "name": "Alex Light",
        "email": "allight@google.com",
        "time": "Fri Jun 09 10:54:02 2017 -0700"
      },
      "message": "Add method tracing JVMTI callbacks\n\nAdd MethodEntryHook and MethodExitHook callbacks and associated\ncapabilities.\n\nSplit --jvmti-stress option in run-test into --jvmti-trace-stress and\n--jvmti-redefine-stress to test each different component.\n\nNB 3 differences from RI found:\n  1) RI will call methodExitHook again if the method exit hook throws\n     an exception. This can easily cause an infinite loop and the test\n     is specifically tweaked to prevent this from happening on the RI.\n  2) RI always includes the method being exited in the stack trace of\n     errors thrown in the hooks. In ART we will not include the method\n     if it is native. This is due to the way we call native methods\n     and would be extremely difficult to change.\n  3) The RI will allow exceptions thrown in the MethodEnterHook to be\n     caught by the entered method in some situations. This occurs with\n     the tryCatchExit test in 989. In ART this does not happen.\n\nBug: 34414073\nTest: ./test.py --host -j40\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 988\nTest: ART_TEST_FULL\u003dtrue DEXTER_BINARY\u003d\"/path/to/dexter\" \\\n      ./test/testrunner/testrunner.py --host -j40 -t 989\nTest: lunch aosp_angler-userdebug; \\\n      m -j40 droid build-art \u0026\u0026 \\\n      fastboot -w flashall \u0026\u0026 \\\n      ./test.py --target -j4\n\nChange-Id: Iab229353fae23c2ea27c2b698c831627a9f861b1\n"
    }
  ]
}
