)]}'
{
  "log": [
    {
      "commit": "9dcc79df4ffc90b62f8e0eab18fa2aa90c38d5bd",
      "tree": "a757a16060e37aa12158060e67c9b54d29f52ee4",
      "parents": [
        "e983d0062addbf374938df04d626243e08b79412"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 16:31:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Oct 02 16:31:10 2011 -0700"
      },
      "message": "Add Class.getModifiers.\n\nThis doesn\u0027t cope with inner classes, but it lets us run more tests.\n\nChange-Id: I3f87b49e87cbe72a7d1d9aeede12ec88d59f8ea3\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": "6bf1915f20a11748d8d4b78ad020172bb2e6c946",
      "tree": "6cc01188a48bdb2ac247b4338001dcf57d7a85fb",
      "parents": [
        "5371b18d8ff3cd31895255374f575650df4839f0"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:12:33 2011 -0400"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Thu Sep 29 13:42:49 2011 -0400"
      },
      "message": "Revert \"Reverts to track dalvik and libcore\"\n\nThis reverts commit 53d6ff445706c390c541d10ef11f1b2f19ab14e8.\n\nChange-Id: I7cfff5b532b0dd6ffef010732cd248f58236421b\n"
    },
    {
      "commit": "5d40f182181488eb39ccd19ffd306bb1fb9740c9",
      "tree": "f76c0593d7be5975543411a3d85134e846774ba5",
      "parents": [
        "1ff230d113d25fbcd2986773799ac1ef504a6af0"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 22:29:18 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Tue Sep 27 01:24:39 2011 -0700"
      },
      "message": "Fixes for \"null instanceof\" and class initialization\n\nFirst issue was that the codegen seemed to expect r0 to contain 0 for\na false result in the null object case. This is a quick fix to make\nthat true. Given that the code is doing the work of a null check and\npulling out the object\u0027s class, the code should probably just pass the\nclass to the helper function, making this a case of IsAssignableFrom,\nnot instanceof.\n\nSecond issues were related to missing EnsureInitialized calls in two\ndifferent code paths, one coming from reflection, one coming from\nmanaged code. New Class::AllocObject assert should help keep us out of\ntrouble in the future in this area, although perhaps Heap::AllocObject\nshould have a check as well.\n\nChange-Id: Ib7975b6457481c1ac85135d38f42c6061e6443a0\n"
    },
    {
      "commit": "395520eaa47eca25b92e86188accf3095d60af49",
      "tree": "23cff36a71ea43eeb6a4bb7a7544c45aa3534c85",
      "parents": [
        "14357e842b611279d467b64d450c569af33a6936"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 25 19:35:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Mon Sep 26 10:56:37 2011 -0700"
      },
      "message": "Assorted fixes for running frameworks apps\n\n- Adding Heap::target_utililization_\n- Convert ClassNotFoundError to ClassNotFoundException in Class.forName\n- Finish String::GetHashCode\n- Changed Runtime.gc to unimplemented\n- Disable preload simulation in oat_process\n- Empty native placeholder for org.apache.harmony.dalvik.ddmc.DdmServer\n- Bonus: Fix problem with reflective invocation of constructors and private methods\n\nChange-Id: If11b273e2f82e8e0fa7161a756098514e1156a19\n"
    },
    {
      "commit": "c0dd312b4ae5d11c59145f86a327c799877fbf53",
      "tree": "2fe0b14a122ec003033a76b309097b124be5ce36",
      "parents": [
        "c0ecd655083e559159d1ad22a6213d16527e0e2b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 10:15:43 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 26 10:15:43 2011 -0700"
      },
      "message": "~ should have been !.\n\nChange-Id: Ia5c939dddba192593883e1c009663ce6a0ecdb9c\n"
    },
    {
      "commit": "2a20cfd0b7fc81099f5de0da782ebcc1cb262792",
      "tree": "ef9b496f2ea83edce5cbe4a427dbaafd710bff16",
      "parents": [
        "65ca077378935beb113bb5aec5e890054ca3286e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 19:30:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Sun Sep 25 10:29:48 2011 -0700"
      },
      "message": "Implement java.lang.reflect.Constructor.constructNative.\n\nChange-Id: Iefa92ad1bd89073d4bfa9a80b9e4f0dea90a5849\n"
    },
    {
      "commit": "8060925c45cc2607ab92390d7366c6c0cfdfe4bb",
      "tree": "42a50d2de4cc7622b19d6cd7a20b3d99d60a00a2",
      "parents": [
        "bc2f3e3e41d02eb2896dc16390c5c4023a7b5649"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 17:24:51 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 18:08:21 2011 -0700"
      },
      "message": "Implement Class.getDeclared(Constructors|Fields|Methods).\n\nThis required making sure that a Method* that represents a constructor\nhas java.lang.reflect.Constructor as its class.\n\nChange-Id: I25908845a2b8d686d5404ac584693db0edd5853c\n"
    },
    {
      "commit": "bc2f3e3e41d02eb2896dc16390c5c4023a7b5649",
      "tree": "1f229465f28c2178a7fe849e45bc2fd91d3dab4a",
      "parents": [
        "21d9e8323124a832a21679ca83808bc9c68ed365"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 22 17:16:54 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 17:11:55 2011 -0700"
      },
      "message": "Add support for oat_process for use as a wrap.* launcher\n\nAdd test support for running Calculator\n\nChange-Id: I7ec0681febe6f6c836452e8afb4c12a2ebfa0ea8\n"
    },
    {
      "commit": "dd8df69d5f6fcd8de424fa25484d698f9e614526",
      "tree": "c6ff9654c665ce191ac8dc6e3002d918c4cc30f3",
      "parents": [
        "d1bb4f6b7c8dda429f61937cd42f3a0b7367c271"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 14:42:41 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 23 14:42:41 2011 -0700"
      },
      "message": "Class.isAssignableFrom and Class.isInstance.\n\nChange-Id: I5fd52a80a08cad1ca98f7e13a6cf56add952d8af\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": "53d6ff445706c390c541d10ef11f1b2f19ab14e8",
      "tree": "f1e863afe6c57bf0bf9b32a2c4642f3707b4ec41",
      "parents": [
        "d8b877a20c87e3c7ebef4a3ddd1d8896b2a5b822"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 10:45:07 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Fri Sep 23 11:03:48 2011 -0700"
      },
      "message": "Reverts to track dalvik and libcore\n\nRevert \"Tracking removal of Method.NO_ANNOTATIONS static field from libcore\"\nThis reverts commit c6766ed17d27417bfce62c31b342b3faa47ada5d.\n\nRevert \"Implement Class.getDex.\"\nThis reverts commit 98fb41647a5664922a196fd1f6b343e6bad8e51e\n\nRevert \"Track libcore change.\"\nThis revert commit c3d530c371d5c915f4d4545810d77d391dbbfec9\n\nChange-Id: I7159af63f100fc9810e6c2e5ef18b0c4942acc8b\n"
    },
    {
      "commit": "98fb41647a5664922a196fd1f6b343e6bad8e51e",
      "tree": "8af776aee481d8d0a56d743487ca1eface1d6bc6",
      "parents": [
        "0c64f5ebef8ad6470be87cd2d50934180c91b70a"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 15:24:13 2011 -0700"
      },
      "message": "Implement Class.getDex.\n\nChange-Id: Iefb1e21a364e3e3b9f32ffd6ba57b55cfaee8c3b\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": "c3d530c371d5c915f4d4545810d77d391dbbfec9",
      "tree": "094472092750d9d278b7eb53f8d5aa178f4d281d",
      "parents": [
        "f91c8c328c922ecd522e1d3508d2603e78de8a7b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 12:10:40 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Sep 22 12:10:40 2011 -0700"
      },
      "message": "Track libcore change.\n\nChange-Id: Ibb4374008f2657b8ffd2ed08329d319151107d04\n"
    },
    {
      "commit": "f91c8c328c922ecd522e1d3508d2603e78de8a7b",
      "tree": "9ae1b28516bfac8698f34e56b4a07037b5c81c28",
      "parents": [
        "ff1ed4770bf7ff024a807b9f909b1a26abb78341"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Wed Sep 21 17:30:34 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Thu Sep 22 11:28:21 2011 -0700"
      },
      "message": "Adding JNI code for dalvik.system.DexFile and java.lang.Class\n\nChange-Id: I079c037db77aeaca0dec06660f7551f57adf2607\n"
    },
    {
      "commit": "03c99df35373efa1924d0ab9c0d21f9061afe8ea",
      "tree": "211cd72a2713c6a2d9f99f8c999e651f50432959",
      "parents": [
        "534f045c57532f5689ccad269faa35b655a44f77"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 10:52:00 2011 -0700"
      },
      "message": "Fix Class_getDeclaredConstructorOrMethod to look at direct as well as virtual methods\n\nChange-Id: Ibc34e3e55b408b2ef04e439960c63fb6e98d06eb\n"
    },
    {
      "commit": "5b8e4c810a97c9dc417142b8c6e07871ae15c797",
      "tree": "1a28a30bfca5e29d2abb33ad8fa27e66ab9beae9",
      "parents": [
        "3a7b4f26387b3529899f3cf16cdd6f1e200ded80"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:38:59 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sun Sep 18 01:56:40 2011 -0700"
      },
      "message": "Change Class::component_type_ and implement reflect.Array\n\nChange-Id: I9e06f31577551c738eca2621146c8d2328119442\n"
    },
    {
      "commit": "3a7b4f26387b3529899f3cf16cdd6f1e200ded80",
      "tree": "c8f743def22ea61bf7bf63af029085bf8ee5ca23",
      "parents": [
        "81eccc06e0adae55e57008e9e61a25920569d5b9"
      ],
      "author": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:01:57 2011 -0700"
      },
      "committer": {
        "name": "Brian Carlstrom",
        "email": "bdc@google.com",
        "time": "Sat Sep 17 15:03:18 2011 -0700"
      },
      "message": "Class.getDeclaredConstructorOrMethod\n\nChange-Id: I96e39e18d099b683c690bccc1ba93f310b3ee823\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"
    },
    {
      "commit": "6bdc3b255d313a71016e78802dbcc97fa995c851",
      "tree": "1c6642eceeaca5f3490a893cd57141a18341ee7c",
      "parents": [
        "85d1545e985ac689db4bad7849880e843707c862"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 19:24:10 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri Sep 16 19:24:10 2011 -0700"
      },
      "message": "More java.lang.Class functionality.\n\n(Some of these are just stubs, but I need them to get the GC daemons\ngoing.)\n\nChange-Id: I3c472bf06d3a11a183781605cd3ed9fc67640d33\n"
    },
    {
      "commit": "8d768a954b101a9532f980253ac46be2c53aba11",
      "tree": "ba6fa0be68a2289d5de3eb6c4de6fe93f6cd858a",
      "parents": [
        "43a364291dcdfe08e530e9568748359735dd7442"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Sep 14 16:35:25 2011 -0700"
      },
      "message": "Thread suspension.\n\nIncludes SuspendAll/ResumeAll, and uses them in Heap and SignalCatcher.\n\nChange-Id: Ie39b868ca5961f5016f367acade5071392bb723e\n"
    },
    {
      "commit": "d369bb76dee0df2d2a106e9bf7f4e6446ed6deaa",
      "tree": "fbcfe2341a78a860b97649f719406709a8c87341",
      "parents": [
        "aaa208006d7c8cc0f381c4aa9b525be24066c495"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 14:41:14 2011 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Mon Sep 12 15:10:49 2011 -0700"
      },
      "message": "Various things.\n\nThis patch:\n\n1. adds good-enough implementations for a couple of Class native methods we\nneed.\n\n2. removes a fixed TODO from image_test.\n\n3. adds missing null checks to the Thread native methods, and forwards\nThread.nativeCreate to Thread::Create.\n\n4. stops jni_compiler from overwriting already-registered native methods\nwith the dynamic lookup stub.\n\n5. adds workarounds to Thread::CreatePeer so we can cope better without\ncode, attempts to initialize thread groups correctly, dumps thread state\nfrom the managed peer (where one exists), and implements Thread::DumpStack\nfor debugging (and SIGQUIT dumps).\n\nChange-Id: I3281226dd22ec852dca5165748fc75a254904ac0\n"
    }
  ]
}
