)]}'
{
  "log": [
    {
      "commit": "6d4d9fcb4f01e287ee29e81cd1c941ee5d11d379",
      "tree": "4c715bef86a3c5a47f9cea43c4a092cf4766ed4b",
      "parents": [
        "86b0010c79ef95b5333cd540b7d3af34a9f1a643"
      ],
      "author": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Wed Nov 30 16:24:48 2011 -0800"
      },
      "committer": {
        "name": "Ian Rogers",
        "email": "irogers@google.com",
        "time": "Tue Dec 06 14:02:09 2011 -0800"
      },
      "message": "Reduce meta-data object sizes, introduce meta-data helper classes.\n\nChange-Id: Id14ad218f1c74c659701352fdf1a45bf6444daa3\n"
    },
    {
      "commit": "c129a6b44193ac3a872f852a69d336e0e7ed8640",
      "tree": "ff5b5503aff4e5173c570b2e471d2df0895b7b2b",
      "parents": [
        "434424a3f60f2129aaa1780ac6a5c2618bc789e0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Nov 24 14:47:46 2011 -0500"
      },
      "message": "Make methods and fields accessible by default in art.\n\nThis also fixes a corner-case bug where calling Field.setBoolean()\non a non-boolean field would crash the runtime.\n\nChange-Id: I2f6693e3c3fe3bf23b4761335300506b3fbd3008\n"
    },
    {
      "commit": "9a6bae896a2f003d7216603bf29771d105c10ca4",
      "tree": "ccf8c190b8b4daf799e17ec8b04b77edfc5c72ff",
      "parents": [
        "169c9a7f46776b235d0a37d5e0ff27682deffe06"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 14:57:30 2011 -0500"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Mon Nov 14 17:46:40 2011 -0500"
      },
      "message": "Don\u0027t run managed code until the runtime has started.\n\nPreviously we ended up running managed code because JNI was\ntriggering class initializers to run. This was triggered by\nboth Thread::CreatePeer() and InitBoxingMethods().\n\nWhen these initializers were prevented from running, other\ncode broke:\n - Creating the peer for the main thread was relying on\n   ThreadGroup.\u003cclinit\u003e to assign the built-in thread groups.\n - Creating the boxed methods caused class initialization of\n   the primitive wrapper classes; these need to be initialized\n   before Thread.\u003cclinit\u003e is run to avoid a crash in its own\n   initializer.\n\nThis change works around those breaks by splitting thread peer\ncreation into two parts (allocation and running \u003cinit\u003e) and\nby calling InitBoxingMethods() during runtime start.\n\nChange-Id: I44be7170ce08451adf876ee73cba0f1f66d5a59e\n"
    },
    {
      "commit": "b82b6878fb000d4731063b1bf15c39ff7c50b61f",
      "tree": "8764bcc9307fb2f57820b25b1d098e15166a24bc",
      "parents": [
        "bfe487be25652c5456236661b9d9c3579d2296c1"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 17:18:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Oct 26 21:43:27 2011 -0700"
      },
      "message": "Make sure threads allocating are in the kRunnable state\n\nChange-Id: I55a08fcd38b3388698ef571d2d4fa9553210e197\n"
    },
    {
      "commit": "6b4ef025af12b158d117fc80fc79acf620f411a0",
      "tree": "223c580477cbb7bde240b599da4bbee793b8dcaf",
      "parents": [
        "21b9f1355f0311b5c67bfdfa9dd63cacb1fba502"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Oct 23 14:59:04 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Oct 25 00:03:03 2011 -0700"
      },
      "message": "Make ResolveField not rely on Field::GetType resolution\n\nChange-Id: I10f4a874809ac9db2cd54e200cf10eb7c8979fce\n"
    },
    {
      "commit": "582a7d16bb0db323d8bd730beb61578aa3765f43",
      "tree": "ec5ce05edac63b7849b39463d02470d4cc4fde3f",
      "parents": [
        "df143242f4beaad4cc9fbabebfc033b68c40964e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Oct 10 18:38:42 2011 -0700"
      },
      "message": "Fix a handful of reflection bugs.\n\nWe now pass test 046.\n\nChange-Id: Ie605ed99e64038435608fe388c59526674af5489\n"
    },
    {
      "commit": "ed1c1e335acc9f61c7e25a78204f159ee3d13350",
      "tree": "91be0a05aaf7e18f655cad675e411ed56a79d48a",
      "parents": [
        "67786519786755d287bcda07dceb6b6110b4f3f0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 14:31:05 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 14:31:05 2011 -0700"
      },
      "message": "Fix field access.\n\nThere was a bug in the implementation where the native methods weren\u0027t\nnecessarily getting a null receiver but art::Object insists that you only\nget/set static fields on a null receiver.\n\nAlso, these tests assume that fields are in the setAccessible(false) state\nby default. In our system, they\u0027re not.\n\nChange-Id: I935614fec013be465fc0bc30d3c717f12476e09b\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": "fe6207f7d3a38e021f81f7c3d25f085883e4cf43",
      "tree": "c57ff9ab11f8ddcf89b2e33b8dafa4eca3965277",
      "parents": [
        "20d8d673ed402e9d0292f1770313476ce94a9ef2"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:24:06 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 17:24:06 2011 -0700"
      },
      "message": "Add one last memory barrier.\n\n(At the time I added all the others, this code had yet to be written.)\n\nChange-Id: Id41e5730eec19d9968608cdcdfc487e48ddfb487\n"
    },
    {
      "commit": "418d20fc407052d4152157f61e7453359f902383",
      "tree": "250a190e03cb4c8d509dc3a13fd4607f888965ca",
      "parents": [
        "c41e5b5ae1befe2c602d55de1dbc04d1914f4a6c"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 14:00:39 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 13:58:05 2011 -0700"
      },
      "message": "Implement reflective method invocation.\n\nChange-Id: Ib3af9d7e00bf226398610b5ac6efbfe3eb2d15e8\n"
    },
    {
      "commit": "0c64f5ebef8ad6470be87cd2d50934180c91b70a",
      "tree": "8ea66d89ba6c92d6edfb8f7253cb29ec0583d207",
      "parents": [
        "c3d530c371d5c915f4d4545810d77d391dbbfec9"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 22 16:52:20 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 22 16:55:25 2011 -0400"
      },
      "message": "Move annotations to managed code.\n\nChange-Id: I8491f5d8b489b6fb4f80d4cbca9a05c0cf47816d\n"
    },
    {
      "commit": "fea966e51e65f2040e1510a2e39d407baad29b2c",
      "tree": "57fc15f6c7d2bc863016f739473c26ffb8dc0b79",
      "parents": [
        "33203b59aa5f27bac0433bdb640f1f1e911186eb"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 10:26:20 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 10:26:20 2011 -0700"
      },
      "message": "Use regular JNI for initializing the boxing types.\n\nChange-Id: I2ae94b7a9cbd2831fb73e58aa9f71e50edb78f87\n"
    },
    {
      "commit": "33203b59aa5f27bac0433bdb640f1f1e911186eb",
      "tree": "ddb6c4a6b2c2acf423ae5adccd82e64b976a7145",
      "parents": [
        "c6766ed17d27417bfce62c31b342b3faa47ada5d"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Sep 20 19:42:01 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 21 17:39:00 2011 -0700"
      },
      "message": "Field reflection.\n\nChange-Id: I10ffddbbc20cb5b4bbe7df52fef721e12f4b852c\n"
    },
    {
      "commit": "f867b6f706818c886087f61b89d1e8f5fc4653cf",
      "tree": "87a87a20f884601848ad09ced087035d121ab2d0",
      "parents": [
        "6bdc3b255d313a71016e78802dbcc97fa995c851"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 12:17:25 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 16 23:18:48 2011 -0700"
      },
      "message": "Filling in some Class, Method, and Field native code needed during startup and I/O\n\nChange-Id: Ia2f2a0ec295d1bd848e6f65254bd9fec2fde56f6\n"
    }
  ]
}
