)]}'
{
  "log": [
    {
      "commit": "4514d3c0e69a49f5dbe19138330a2bb2aee36d63",
      "tree": "f5bd420d6e5f1f2daeb418561c7adf016c161810",
      "parents": [
        "872d4ec7225444d9400d30f9027247deb91012fd"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 21 17:01:31 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Oct 21 17:55:30 2011 -0700"
      },
      "message": "Fixes for ThreadStress test\n\n- Fix deadlock when ThreadGroup.remove(Thread) was run with\n  thread_list_lock_ but needed to GC to allocate an iterator\n- Fix ~MonitorList to clean ownership of any locks that might be held\n  by JNI or daemon threads on shutdown.\n\nChange-Id: I95e23c3b7c745f6a8387789949f3ec849458a27d\n"
    },
    {
      "commit": "fc86162ce2a3467acb690e18cc8bd9b3daafc606",
      "tree": "949145ce27225c93a41354460fa76cdc62647076",
      "parents": [
        "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 17:57:47 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 20:21:27 2011 -0700"
      },
      "message": "Implement lock contention event logging.\n\nChange-Id: I88b30985590157bb5d04229a97f191b898f141bb\n"
    },
    {
      "commit": "24a3c2e9924e8765c4a9b4d383cb8f3b922f9c9f",
      "tree": "1f61ecb377be4abcba4838651bc9d98b548a3f81",
      "parents": [
        "3535c22d05bb4600255db90b490e625eda874b53"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:07:52 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Oct 17 18:17:36 2011 -0700"
      },
      "message": "ClassLinker changes\n\n- Add ClassLinker::LockOwner for SignalCatcher\n- ClassLinker::ResolveMethod now sets CodeAndDirectMethod when code is available\n\nChange-Id: I404b80d1994808e018d00e0b30e8ba4f9d08fecc\n"
    },
    {
      "commit": "f8e012785ee61a3d2f43f74a249d66e1381bdb83",
      "tree": "00d86f07a48653065bc77fffb4561a7072370499",
      "parents": [
        "2ced6a534157d5d963693346904389c19775d2da"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 11:29:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 17 11:29:05 2011 -0700"
      },
      "message": "Add -verbose to dex2oat, and improve -verbose:monitor output.\n\nChange-Id: Iec19eb45a600e80855d25a1a02d2351f628c3a1a\n"
    },
    {
      "commit": "c33a32bccc4c66ed82ce3a580b16636399385cb4",
      "tree": "ef101d11157784c0724998d39e988a275ed4f69c",
      "parents": [
        "a465c2034094eeb827ff9204951703dc5f269d60"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 18:18:07 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 18:18:07 2011 -0700"
      },
      "message": "Sweep the monitor list.\n\nChange-Id: I343261206f8bbabd245b404dd95d532255e5d870\n"
    },
    {
      "commit": "32d6e1e5654433d7eadede89e1c770b2c839aee9",
      "tree": "6534711910fe730d700e9f747252b800dfc143e0",
      "parents": [
        "231a01597f561b4d4841ac3bb494c8a55b43fdd0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 14:47:44 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Oct 11 14:47:44 2011 -0700"
      },
      "message": "Add -verbose:monitor and silence the monitor logging by default.\n\nChange-Id: If05c4853c6c072759fb6b7f301a583d6b8c55b9f\n"
    },
    {
      "commit": "5cb5ad27944efb08d4556b3c0d362302e37e832b",
      "tree": "63334f19072ca2ba7179973f0ce62101ee89605d",
      "parents": [
        "d6fe38d96b6116bd53cf2cb14734af8d69e08661"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 12:13:39 2011 -0700"
      },
      "message": "Fix exception throwing to support no detail message.\n\n(The empty string as a detail message is distinct from a NULL detail message,\nand is treated differently by Throwable.printStackTrace.)\n\nChange-Id: I8c65deac9f18c5782dcf6e72e4c37e6dd4174fe9\n"
    },
    {
      "commit": "8e4aac52962d54cb4be2078b9cd95685e067133a",
      "tree": "bb85a52e0326bef05acf9abe5e3d3b396c1d3795",
      "parents": [
        "03f034949fa7b44aa49e6603d8d5e7a55bf07795"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:03:36 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:03:36 2011 -0700"
      },
      "message": "Add the \"- waiting on\"/\"- waiting to lock\" lines to the SIGQUIT output.\n\nChange-Id: I0a8ab2e9e54c390e0d499ef464d82c2f2c628cbe\n"
    },
    {
      "commit": "4681c809ba35d50fab92c592ce8d2c7f8b2731f7",
      "tree": "218759bc9564bdbaa49d1be89d257ecddd3a8a14",
      "parents": [
        "54643083afd5b99f4d52a32b4030aec0db8d0e2f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 18:04:37 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 18:04:37 2011 -0700"
      },
      "message": "Various things.\n\nChange-Id: I6911c995d7635b95e6dc6b9112bf4e1adf85e830\n"
    },
    {
      "commit": "dc33ad5db2dc6ed9b76d5219888626a604debbe1",
      "tree": "8b9e612cd44b77ae26c44bc23615f34ecded1004",
      "parents": [
        "7011e675bf585909aa9f6599102afcd66e0a6738"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 19:46:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sat Sep 17 10:27:12 2011 -0700"
      },
      "message": "Initialize all of class Thread\u0027s fields.\n\nChange-Id: I28f1539bbcfebe06e62de692d306b479ed3eaead\n"
    },
    {
      "commit": "85d1545e985ac689db4bad7849880e843707c862",
      "tree": "dbda9214657085a3cbb77b323766da585e133a36",
      "parents": [
        "dcb3dd8bfd6e2d5935442fe8671a2f6326a1e4e5"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:33:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 17:38:56 2011 -0700"
      },
      "message": "Add packing to class Thread.\n\nOtherwise, code compiled on the host can use different offsets than\nwe need for the same structure on the target.\n\nAlso add commented-out code to start up the various GC daemon threads.\nMore Class native methods need to be implemented before that will work.\n\nChange-Id: I618b647b92378eec1b25cee469c8cfccf42f21fd\n"
    },
    {
      "commit": "54e7df1896a4066cbb9fe6f72249829f0b8c49c6",
      "tree": "c7889163c116637001c98270f897d41ca02ce8a5",
      "parents": [
        "a0a764a1f5757f0f7ffa695b855b9d0ac8c2e455"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 11:47:04 2011 -0700"
      },
      "message": "Various bits of cleanup.\n\nMost notable: PrettyField now includes the type (but, like PrettyMethod,\nlets you turn this off), and there\u0027s a new PrettyClass, and PrettyType\nhas been renamed to PrettyTypeOf.\n\nI\u0027ve also moved the dalvik \"sync\" stuff into files named \"monitor\", and\nmade some of the implementation details private.\n\nChange-Id: I39ea79b45e173f9ebbf9878bcead207766a5653f\n"
    },
    {
      "commit": "5f79133a435ebcb20000370d56046fe01201dd80",
      "tree": "974c4610e30e8cc950e6e461e66b939361cb2bbe",
      "parents": [
        "78128a63b2615744760b7f8ab83df9764a5d4a95"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 15 17:45:30 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 10:56:44 2011 -0700"
      },
      "message": "Implement monitors.\n\nChange-Id: Ifc7a801f9cbcdfbc1e1af5c905261dfadaa60f45\n"
    }
  ]
}
