)]}'
{
  "log": [
    {
      "commit": "e8a534d8f0008e27f24016c5978ca0a5f0ecbce2",
      "tree": "47976c63dec66f7b25e9f55d8a6151bc2478bfa0",
      "parents": [
        "73fddbae964ee41895c8218454d0ed7fd71d6913"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:12:23 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:13:37 2011 -0800"
      },
      "message": "Remove API that snuck into MockPackageManager\n\nWe didn\u0027t release the get/setPackageObbPath API, but it snuck into\nMockPackageManager. However, it is not usable as a developer anyway.\nRemoving it so it doesn\u0027t stay in the API forever.\n\nCherry-pick from gingerbread\n\nChange-Id: I2083a8f398d983d53661c33270854442e34f9bc9\n"
    },
    {
      "commit": "a1cbb94dbc9a82d4eb3a47242fe161af21803858",
      "tree": "31e227475f199e3a1bdc34193f5e63b5645e47f1",
      "parents": [
        "db7f38673c33ba55801019007ff18fa4c57f75e0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 12:46:23 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Jan 17 13:00:47 2011 -0800"
      },
      "message": "Revert \"Add the {get,set}PackageObbPaths calls to API\"\n\nThis reverts commit 5d40fe9c6846ba765072e50ed1254293cb9195e4.\n\nChange-Id: Ie41010c92fb860b19a12bcf63f6fe95ffa68da81\n"
    },
    {
      "commit": "805fd7ee0e5dc2939e85c84f78d9890a51982bc0",
      "tree": "e2487cd3d7917fa6a126463e2cc5771295544627",
      "parents": [
        "cf18c4788af740773c9b2720a1c4ed5f45454b8e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 16 18:30:29 2011 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Jan 16 18:43:04 2011 -0800"
      },
      "message": "Add API to get path to OBBs.\n\nAlso hide the bitmap thumbnail stuff, we can\u0027t support it in its\ncurrent form.\n\nAnd fix some bugs with propagating paths to native code.  Yikes!\n\nChange-Id: I13ab37ddbdba5c073489cba5eab035117d3c1574\n"
    },
    {
      "commit": "5d40fe9c6846ba765072e50ed1254293cb9195e4",
      "tree": "3fd67e01ffba461a5700262e32d155febba317d5",
      "parents": [
        "c69d5f3b536a56da9120ace34e05b9878ed164c6"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 14 10:54:46 2011 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jan 14 12:18:48 2011 -0800"
      },
      "message": "Add the {get,set}PackageObbPaths calls to API\n\nAdd getPackageObbPaths() and setPackageObbPaths() to the public API.\n\nBug: 3214719\nChange-Id: I8627b5f674a795d5780eb5c08911419110670a41\n"
    },
    {
      "commit": "ac77f4629c1bbdf2e440d0fcc9fd665e5dd1ae6e",
      "tree": "5cd5a0217063445064876c39bc6fcfba5a8f8d65",
      "parents": [
        "cd3676e7b835653b04d4f66251a63749e7603f5b"
      ],
      "author": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Jan 07 12:06:47 2011 -0800"
      },
      "committer": {
        "name": "Dmitri Plotnikov",
        "email": "dplotnikov@google.com",
        "time": "Fri Jan 07 12:06:47 2011 -0800"
      },
      "message": "Prevent ActivityTestCase from erasing constants.\n\nIf you test case is declaring a non-primitive constant,\nthis method would clear out the constant between\nindividual tests.\n\nChange-Id: I570f2bbbbbb0a170bf63b7473b4aaf84869e93e0\n"
    },
    {
      "commit": "f48e94005b6f7d648ebe659960bed32998779439",
      "tree": "54be9683c7ed474303ed57478544e8c10eeda7b5",
      "parents": [
        "63acafec59d7af24e8579e6f895747b528864a23"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 12:58:40 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 12:58:40 2010 -0800"
      },
      "message": "Remove an obsolete import for performance tests.\n\nChange-Id: Ifc76ef821f71ea7469b4044b15071f5d2a7418fd\n"
    },
    {
      "commit": "bd1c5da28dab9c3fb7e19bdadb22d7ad960fa3c3",
      "tree": "a929e584ab215ff780f695710a004cb393ef3a93",
      "parents": [
        "41e7e6f9339cd9181df26ca96f0ac133371bc524"
      ],
      "author": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 08:21:48 2010 -0800"
      },
      "committer": {
        "name": "Jesse Wilson",
        "email": "jessewilson@google.com",
        "time": "Tue Dec 21 10:23:28 2010 -0800"
      },
      "message": "Remove unused performance tests.\n\nChange-Id: I5a252e314831716f99ce5fbb32d983c7473ee787\n"
    },
    {
      "commit": "c91893511dc1b9e634648406c9ae61b15476e65d",
      "tree": "3ad578a43734d2ed63403a8b9076c2c5c6d07dbe",
      "parents": [
        "60e41fa4456ce6bc37a33b1e4b81a56e9411199b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Dec 15 14:57:25 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Dec 16 20:09:13 2010 -0800"
      },
      "message": "Fix issue #3272082: Contacts: when going back from edit view,\nlist UI is not ready yet\n\nThis involves some reworking of Loaders.\n\nLoaders, in particular CursorLoader, are now expected to retain\ntheir current data after being stopped.  This allows applications\nto keep that data across onStop() -\u003e onStart(), so when the user\nreturns to the app it doesn\u0027t have to wait for the data to reload\nand thus cause flicker.\n\nThis includes various API changes to better reflect the new\nsemantics, plus a new LoaderCallbacks method to tell the application\nwhen it is actually time to stop their use of a loader\u0027s data.\n\nNote this is somewhat half-done, to help checking in the extensive\napplication changes that are required without causing build breakage.\n\nChange-Id: Ib4b3bf8185a6da46e7f06ca125521d65e2e380a1\n"
    },
    {
      "commit": "4f3867e3ce92101224ad79b8f2ff446bb4f99108",
      "tree": "34fe1bf3f235ce5ae2ec4d66046ab7a0bbb439a7",
      "parents": [
        "6866d6912b6b5cbaaf482857d279037135aeb45f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 14 22:09:51 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Dec 14 22:19:03 2010 -0800"
      },
      "message": "Time to remove some old APIs!\n\nChange-Id: I73ca23b0d5c7971a00dfa05357f9b630d9b6ebc8\n"
    },
    {
      "commit": "621e17de87f18003aba2dedb719a2941020a7902",
      "tree": "978b402ced5bd03d3b4f6eaa9fbaaf186427823c",
      "parents": [
        "703c5f39c58168829e8d8f7ed7b5aea3f4fb600b"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 15:59:56 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Nov 22 18:35:55 2010 -0800"
      },
      "message": "Implement issue #3221502: New APIs to support new back stack / task navigation\n\nWhat this adds:\n\n- A new Intent activity flag to completely replace an existing task.\n- A new Intent activity flag to bring the current home task up behind\n  a new task being started/brought to the foreground.\n- New versions of startActivity() that take an array of Intents to be\n  started, allowing applications to start a task in a specific state.\n- A public moveTaskToFront() method on ActivityManager, with a new flag\n  that allows the caller to have the task moved to the front with the\n  current home task immediately behind it.\n\nChange-Id: Ie8028d09acffb5349d98043c67676daba09f75c8\n"
    },
    {
      "commit": "be4e1c8f6f2731e61d1c9302662892007a4579b9",
      "tree": "c222ab7e6b71ac93680578b77998b070c0f56893",
      "parents": [
        "dbc7f092f63172602596c8cdc213159ea5ff0003",
        "7b76ed693e42caea0c5f1bcbe7059c580e9cb314"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 19 16:56:42 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 16:56:42 2010 -0800"
      },
      "message": "am 7b76ed69: am e3bef7c4: Merge \"Added noop unregisterReceiver to complement existing noop registerReceiver.\"\n\n* commit \u00277b76ed693e42caea0c5f1bcbe7059c580e9cb314\u0027:\n  Added noop unregisterReceiver to complement existing noop registerReceiver.\n"
    },
    {
      "commit": "7b76ed693e42caea0c5f1bcbe7059c580e9cb314",
      "tree": "979062841c9a23a97fdee0ef9265349d12d83530",
      "parents": [
        "00f502a38cc4d6e2278f962b04308e6590dba36b",
        "e3bef7c48d7ec13cb8c7c81dba8d775377e69bed"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Nov 19 15:43:28 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 19 15:43:28 2010 -0800"
      },
      "message": "am e3bef7c4: Merge \"Added noop unregisterReceiver to complement existing noop registerReceiver.\"\n\n* commit \u0027e3bef7c48d7ec13cb8c7c81dba8d775377e69bed\u0027:\n  Added noop unregisterReceiver to complement existing noop registerReceiver.\n"
    },
    {
      "commit": "880119bf43d738ca632b5d3861eb52d655c1c0fc",
      "tree": "684a13f821e570aee075c77bde7f5fc28191015f",
      "parents": [
        "7ffd0871e6b8d7ab9443bef6e8b2a31674d1f623"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Nov 18 22:26:40 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Nov 19 13:21:08 2010 -0800"
      },
      "message": "Implement issue #2367442: Please add API for manipulating installer\npackage names\n\nChange-Id: I0563e896a47ae1a6e77aebc2d624fb1bde52ffbc\n"
    },
    {
      "commit": "48983959a34f67024bd0411c8353c196e6a87717",
      "tree": "02e306ba2f70971265902810f70a35cb6e30d5d3",
      "parents": [
        "81c4cea9ec4b08f8c06fdef86d51069adb739eb7"
      ],
      "author": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Nov 17 12:28:51 2010 -0800"
      },
      "committer": {
        "name": "Brian Muramatsu",
        "email": "btmura@google.com",
        "time": "Wed Nov 17 12:28:51 2010 -0800"
      },
      "message": "Fix NPE in InstrumentationTestRunner\n\nThis fixes a problem where the test runner would die when a\ntest case has tests that are not methods of the test class.\n\nChange-Id: I5adc464bb4a0c8d282428895e422a47dcb6bfe1f\n"
    },
    {
      "commit": "3fc03e619fb01678549b80e7a89af2c8e3f19968",
      "tree": "8219675f058c1939b7662dfd08fc284ee60e32c5",
      "parents": [
        "62f2ada64f7213243eafd7a4a4c3ccd5040ad85a"
      ],
      "author": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Oct 19 15:13:07 2010 -0700"
      },
      "committer": {
        "name": "Jack Wang",
        "email": "jackwang@google.com",
        "time": "Tue Oct 19 18:23:18 2010 -0700"
      },
      "message": "Added RepetitiveTest annotation and test runner support\n\nChange-Id: I7bf0871ede6dd69512c6b6ea3484693ba5b78e89\n"
    },
    {
      "commit": "d672475753af1feff1c0f81bba72637ec0b536cd",
      "tree": "cac22eda9f7813d2497a13b515752549aed44f38",
      "parents": [
        "7d9c73fb6f6f79f7f92b77482a0edbd7b89f2564"
      ],
      "author": {
        "name": "Jonas Schwertfeger",
        "email": "jschwertfeger@gmail.com",
        "time": "Thu Sep 30 14:04:09 2010 +0200"
      },
      "committer": {
        "name": "Jonas Schwertfeger",
        "email": "jschwertfeger@gmail.com",
        "time": "Thu Sep 30 14:04:09 2010 +0200"
      },
      "message": "Added noop unregisterReceiver to complement existing noop registerReceiver.\n\nWithout this addition, code that is being tested using an isolated context\ncan cause an exception if it unregisters a previously registered broadcast\nreceiver.  This is because the isolated context never actually registered\nthe receiver in the first place.  The fix is to make sure the isolated\ncontext is consistent in ignoring both recevier registration and\nunregistration calls.\n\nChange-Id: Ie0ba6f4bb10f5248704327a0ffc8e37ee8b71ae2\n"
    },
    {
      "commit": "cca1f0e3476edd09cdd81b075a6b7780a2959b46",
      "tree": "d403a9351ccb722771dea382852bde6df8f23a68",
      "parents": [
        "c63806d852a550d82bbe6cadff8a2139d78ed559"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Sep 27 18:05:44 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "8313fc7e94e46e5cc09f457a15a771a325b9f74f",
      "tree": "d68bf554b0d92a64cde72e58178e60d4d30b521d",
      "parents": [
        "08c09b0f84b23627b4cd02e1b9a642952fbd2e7f"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 18:34:53 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Sep 26 21:31:47 2010 -0700"
      },
      "message": "Allow all apps to call ContentResolver.getType().\n\nI can\u0027t find the bug number for this, but it is needed for some things\nwe are doing where the app building an intent may not have access to the\nURI in the data field.  This is for HC, but doing in GB to avoid introducing\nintegration issues.\n\nChange-Id: I0cac971854198b18775d2a73deb80f23431bfbe2\n"
    },
    {
      "commit": "8e34203c41f2f38f9d58547881bb4febd7c07bc7",
      "tree": "af4aeda8ef3a609a30cc79e10498c65e5b35e959",
      "parents": [
        "ed4fbd98d05a368ea17d6759f262b3547406c8c5"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Sep 07 14:27:25 2010 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Tue Sep 07 14:27:25 2010 -0700"
      },
      "message": "Add getApplicationContext to the mock implementation.\n\nSo that it\u0027ll be compatible with Loaders, which uses this method.\n(Otherwise MockContext.getApplicationContext(), which just throws\nan exception, will be used.)\n\nChange-Id: I529b60466cf086b514fcddbef4583d1c5b750b9c\n"
    },
    {
      "commit": "2394c164a76f6d3f8ad9f1c1517f58f72adab9d7",
      "tree": "f0cee0035a0983071d2cdd713d77eacc156dab36",
      "parents": [
        "633524731b2a7a0871aabfabc60459ac27f0e5ab",
        "ec438e1448ebc578ee5a4c4beb1e26292cdedd6e"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 31 19:06:25 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 31 19:06:25 2010 -0700"
      },
      "message": "am ec438e14: am 361199b5: Add PackageManager API to get information about a provider component.\n\nMerge commit \u0027ec438e1448ebc578ee5a4c4beb1e26292cdedd6e\u0027\n\n* commit \u0027ec438e1448ebc578ee5a4c4beb1e26292cdedd6e\u0027:\n  Add PackageManager API to get information about a provider component.\n"
    },
    {
      "commit": "361199b5e742c6635d4d7a03de6cf37b31cf442c",
      "tree": "170d0ba61242ba04a3491a98f894f3a2e416bbe7",
      "parents": [
        "22cd420bfa431b4ad55e699afadf109dcc54f201"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Aug 30 17:42:07 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Aug 31 18:59:04 2010 -0700"
      },
      "message": "Add PackageManager API to get information about a provider component.\n\nKind-of useful when all you have is a ComponentName.\n\nChange-Id: I9a99f12daabb29e97e882e09c43ca0df70c00651\n"
    },
    {
      "commit": "23fdaf6fb62a9b5154b2508916a21c678462c5d0",
      "tree": "14b794a1f76f738576bbaa8295141914f5b2b123",
      "parents": [
        "163935113919a184122b8b3bd672ef08c8df65dc"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Aug 06 12:16:55 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Sun Aug 08 18:49:31 2010 -0700"
      },
      "message": "Add new ContentProvider for doing conversions to data streams.\n\nThis introduces basic infrastructure that should allow content\nproviders holding complex data to perform on-demand conversion\nof their data to streams of various types.  It is achieved through\ntwo new content provider APIs, one to interrogate the possible\nstream MIME types the provider can return, and the other to\nrequest a stream of data in a particular MIME type.\n\nBecause implementations of this will often need to do on-demand\ndata conversion, there is also a utility intoduced in ContentProvider\nfor subclasses to easily run a function to write data into a\npipe that is read by the client.\n\nThis feature is mostly intended for cut and paste and drag and\ndrop, as the complex data interchange allowing the source and\ndestination to negotiate data types and copy (possible large)\ndata between them.  However because it is fundamental facility\nof ContentProvider, it can be used in other places, such as for\nmore advanced GET_CONTENT data exchanges.\n\nAn example implementation of this would be in ContactsProvider,\nwhich can now provider a data stream when a client opens certain\npieces of it data, to return data as flat text, a vcard, or other\nformat.\n\nChange-Id: I58627ea4ed359aa7cf2c66274adb18306c209cb2\n"
    },
    {
      "commit": "b6d1437f32d92369da208f6201df7bcdb5d17763",
      "tree": "fdb90588a0e8a61a00b1934967ec44178d91a269",
      "parents": [
        "8e552630e72a17d7340f1bebccbc6fd6faef82fb"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 18:05:00 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 18:05:00 2010 -0700"
      },
      "message": "fix build breakage\n\neclipse doesn\u0027t complain but our build does..\n\nChange-Id: If0289b68e91e7eb2ae7a9b7bd90d5cb6b728e944\n"
    },
    {
      "commit": "0c9e14aa4aa1370e01872dc05238f822f2dd552c",
      "tree": "881d1ab617e7b83a3b3d011755a1cb61bd3d414d",
      "parents": [
        "0d523e09bdc6373cba3c3c45ae84ffacfcfcf3b1"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 13:31:48 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Aug 04 13:34:34 2010 -0700"
      },
      "message": "add shutdown() to ContentProvider \u0026 call in ProviderTestCase*.tearDown\n\nChange-Id: I3dd69b6907d68b7c1184139f22297ab92337f043\n"
    },
    {
      "commit": "ebd19e0f48b0cb246c246274a256a9bb494b7e7a",
      "tree": "a503f7f06b89a6259253f088b67a7c2d419697e6",
      "parents": [
        "a2a1b911a31dd94ee75e94845f762b91f1db1368"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Wed Jul 21 16:33:10 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Tue Jul 27 14:03:00 2010 -0500"
      },
      "message": "Add LoaderTestCase that makes it easier to test Loaders.\n\nChange-Id: I4e91d6767cfd5cc61d7893e9cd71e963e42601a4\n"
    },
    {
      "commit": "d93f4e5b70f37feae0cbdf1f456c167a1ea37433",
      "tree": "4ebf3b8930f32f2a754b22361175d4fef111346f",
      "parents": [
        "e339464f1c8efe7e53b761cf44ff5be6e537ecad",
        "87e98cda1c864cb2069d387a64346702a05574c4"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Tue Jul 13 09:46:38 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 13 09:46:38 2010 -0700"
      },
      "message": "Merge \"DO NOT MERGE Doc Change: Javadoc for test case classes\" into gingerbread"
    },
    {
      "commit": "bbfe0b2264703c243e2e74631abd26fdf4459e36",
      "tree": "e47eac80284822babe166ef4b099d9830010bbcc",
      "parents": [
        "d8a6271bb1da4ee2a8ae126b532f1b5f302decb8",
        "243f7f85ea9e57716590b9cf355e55d1f0236fce"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jul 08 19:10:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 08 19:10:29 2010 -0700"
      },
      "message": "am 243f7f85: am f6120cf4: Merge \"Improve InstrumentationTestRunner exception handling.\" into gingerbread\n\nMerge commit \u0027243f7f85ea9e57716590b9cf355e55d1f0236fce\u0027\n\n* commit \u0027243f7f85ea9e57716590b9cf355e55d1f0236fce\u0027:\n  Improve InstrumentationTestRunner exception handling.\n"
    },
    {
      "commit": "511d9ec363c5bb460e4695de56edc1b7785dc7bf",
      "tree": "0989c0d452b037d9621f701c0adacb96d6b4710b",
      "parents": [
        "28e230352b24b190d6750aa38a79b69e2fada067",
        "0a21801f5fae22cd5e1b3e9f1c1405c744e24c9b"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Jul 08 19:09:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 08 19:09:06 2010 -0700"
      },
      "message": "am 0a21801f: am a5402dab: Merge \"OBB API for PackageManager\" into gingerbread\n\nMerge commit \u00270a21801f5fae22cd5e1b3e9f1c1405c744e24c9b\u0027\n\n* commit \u00270a21801f5fae22cd5e1b3e9f1c1405c744e24c9b\u0027:\n  OBB API for PackageManager\n"
    },
    {
      "commit": "f6120cf431804e072f34699a5d8a3fae62492cee",
      "tree": "dfc0e00fb75fe4d40949772df0dd5ffff275ce80",
      "parents": [
        "74bf59b450daf9e7e6bf234f01db164099edbfd5",
        "31e7ce762ccbbb747fabb4581e42a0a2fe56e780"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Jul 08 14:09:21 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 08 14:09:21 2010 -0700"
      },
      "message": "Merge \"Improve InstrumentationTestRunner exception handling.\" into gingerbread"
    },
    {
      "commit": "31e7ce762ccbbb747fabb4581e42a0a2fe56e780",
      "tree": "f9d5ff503a6ce35c29aa2da2f9bdc6359f6640dc",
      "parents": [
        "dacabf97c609a040ada857a7da6c560097448ae3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jul 07 17:19:08 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Wed Jul 07 17:33:22 2010 -0700"
      },
      "message": "Improve InstrumentationTestRunner exception handling.\n\nThis commit fixes two somewhat related problems:\n  - Attempting to run a method which does not exist caused a runtime\nexception which stopped the test run. Change this so the runner reports\nan individual test failure instead\n  - A runtime exception during the test run would cause it to stop\ncompletely, with no information dumped to the logcat or stdout. Now\nexceptions are trapped and reported to stdout.\n\nAlso added associated unit tests to test these two conditions.\n\nRelated bug 2812262.\n\nChange-Id: I383f9b9bad99f14cb51071800fa9bdbf6a6a1119\n"
    },
    {
      "commit": "93565c4b3265c16aee4a82d7556f811776c17db8",
      "tree": "1b6802fea6d067d97410d67d6665721ea23fb327",
      "parents": [
        "7cee34a051eb0087322c8b965e498f88b1aa52d3"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Jun 18 15:46:06 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Jul 07 09:57:51 2010 -0700"
      },
      "message": "OBB API for PackageManager\n\nSimple API for tracking .obb files associated with packages. Stores the\npath in the PackageSettings. No verification of file content is done\nnow since the PackageManagerService can\u0027t read the SD card where these\nfiles will likely live.\n\nChange-Id: Ibeaf26ba0526b6d60f401137e58f46ee9faff39e\n"
    },
    {
      "commit": "87e98cda1c864cb2069d387a64346702a05574c4",
      "tree": "71ce565d76f51c7a532436f102d32c17ab5edfb2",
      "parents": [
        "8ecfb60a8e74dfcd51bbf3f236d5f414a4d5ac7d"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 31 14:37:28 2010 -0700"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Fri Jul 02 17:52:37 2010 -0700"
      },
      "message": "DO NOT MERGE Doc Change: Javadoc for test case classes\n\nChange-Id: I21b78a84ee1345a98631dcaab937a10b4fa4344d\n\nOriginal change was SHA1 7d433aabb731a790fc8d06d260c826751215113f\n"
    },
    {
      "commit": "7d433aabb731a790fc8d06d260c826751215113f",
      "tree": "5e9d79ba13c3cecb80443d329b9814636b46a873",
      "parents": [
        "7ade1be822ed05a143b059319dccd5e9f623b56d"
      ],
      "author": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Mon May 31 14:37:28 2010 -0700"
      },
      "committer": {
        "name": "Joe Malin",
        "email": "jmalin@google.com",
        "time": "Tue Jun 29 15:03:58 2010 -0700"
      },
      "message": "Javadoc for test case classes\n\nChange-Id: Ibfa035cfe9091a81fca8bd0a6c141ec26c2de139\n"
    },
    {
      "commit": "25f3ab4ee7d14ac9453396e2100d27f3f52c7077",
      "tree": "d2e0dfb4860338027a2613e2e4be2806ae9c2a8f",
      "parents": [
        "a2650db770e93a9424d6d6948fd31f943f6dac49"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Jun 18 16:19:26 2010 -0700"
      },
      "committer": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Fri Jun 18 16:19:26 2010 -0700"
      },
      "message": "Manual merge of change 53051 from master (DO NOT MERGE)\n\nChange-Id: Ia4697a15cb874f25849655994e10aa88ae60b328\n"
    },
    {
      "commit": "f6b979a04f38659177e06ff81cf7bc1b87389fe9",
      "tree": "35438c24a45d92ebc9b81ecf4a0ef5af9510808b",
      "parents": [
        "8fd2913a7d893f7b0c07217df246876318739db5"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jun 04 16:12:15 2010 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Fri Jun 04 16:14:42 2010 -0700"
      },
      "message": "Fix UnsupportedOperationException from MockContext.\n\nAdded the new variant of openOrCreateDatabase to RenamingDelegatingContext too.\n\nBug 2739822\n\nChange-Id: I65868d0975e0a0a87ade6b5a0d625b96676af0ba\n"
    },
    {
      "commit": "74f170f9468d3cf6d7d0ef453320141a3e63571b",
      "tree": "7fb4f06b43b5e0ef8d2fdebccb62172217e0b174",
      "parents": [
        "26ae7875ad41c79d595a137c2f4a55c8d8e16f4c"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue Jun 01 18:06:18 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Thu Jun 03 12:38:11 2010 -0700"
      },
      "message": "new API in Context. on openDatabase, new param DatabaseErrorHandler\n\nadd new method openOrCreateDatabase in Context.java to allow\ncallers specify a DatabaseErrorHandler object to be used when\ndatabase corruption occurs.\nadd new constructor in SQLiteOpenHelper to accept DatabaseErrorHandler\nas an additional param to be used when SQLiteDatabase instance is\ncreated.\n\nChange-Id: I912a0202a74510f9ca0206dd8101c4abab9102ae\n"
    },
    {
      "commit": "8b0dd7da360d70920a37802eb455ba41500d3b45",
      "tree": "d31a63e67bbfad53c2dfe4002795b73286b7c361",
      "parents": [
        "3e7432f823b9f0457e935614787cff4eb71a8f2b"
      ],
      "author": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Tue May 18 11:54:31 2010 -0700"
      },
      "committer": {
        "name": "Vasu Nori",
        "email": "vnori@google.com",
        "time": "Wed Jun 02 17:40:41 2010 -0700"
      },
      "message": "add API to Cursor to get column value type\n\nChange-Id: I3ef1bcdb2eb1c45f68e829ccb6e3ecde28076591\n"
    },
    {
      "commit": "71be4b5ed994030171fb3bd3f08fbc8c43c47567",
      "tree": "bd8e9a421ab626adc21f61db0bcc4175cae65f67",
      "parents": [
        "0e42b29eb0b279ad64c55890efd3fb533493224e"
      ],
      "author": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Tue Jun 01 13:55:50 2010 -0700"
      },
      "committer": {
        "name": "Evan Millar",
        "email": "emillar@google.com",
        "time": "Tue Jun 01 13:55:50 2010 -0700"
      },
      "message": "Bring ServiceTestCase in line with current Service APIs and remove unnecessary asserts.\n\n-Updated onStart() call to onStartCommand()\n-Removed asserts that disallowed starting an already bound service and vice versa, since\n that is a valid Service usage pattern.\n\nChange-Id: I79804aef5319a590c74fca54fc990954f7c3fdaa\n"
    },
    {
      "commit": "e26867793b6a0c226e02f7da880b06efbcb8707e",
      "tree": "30685e5c8ee5cd4e20895d99d5a923643cae6ea9",
      "parents": [
        "7cd51efcbd2d083bf577696591ef1769034f7e2f"
      ],
      "author": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 13 02:34:10 2010 -0500"
      },
      "committer": {
        "name": "Jeff Hamilton",
        "email": "jham@android.com",
        "time": "Thu May 13 23:44:10 2010 -0500"
      },
      "message": "Remove the unused modification APIs from MockCursor. They shouldn\u0027t have been public in the first place.\n\nChange-Id: I2932e5287f838f72acdc4c0c1fd5601ffa8c3f84\n"
    },
    {
      "commit": "631447c6049c2ee18e6cd1553905dd8f15b3bcbd",
      "tree": "2f195e4ddef0358ae8472614dc36e5a916aeca46",
      "parents": [
        "88b299b123c7add985c78deb085880733c0dc7ea",
        "bb469fe3da7e6d17e851a95026a9eea905c52daa"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Apr 26 10:30:56 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 26 10:30:56 2010 -0700"
      },
      "message": "Merge \"Add test runner log when test case class is not loaded.\""
    },
    {
      "commit": "bb469fe3da7e6d17e851a95026a9eea905c52daa",
      "tree": "fea7c329f41977fabc3dc75c9122ce680a1aecb9",
      "parents": [
        "a2c980d30f41e6d5aff948e7b249d7c3360db89d"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Apr 23 16:22:09 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Apr 23 16:29:00 2010 -0700"
      },
      "message": "Add test runner log when test case class is not loaded.\n\nThe test runner will only load TestCase classes that have a public\nconstructor with either no params or a single String parameter.\n\nThis is fairly subtle behavior and can be difficult to catch. This change\nadds a log message when a TestCase class is not loaded, and adds some\nassociated unit tests.\n\nChange-Id: I6fc63e4179c949620f5773e0ae134f99905a6fb2\n"
    },
    {
      "commit": "81cd2e90ccdda498234384c8207afe2213714e60",
      "tree": "b521124675b8e4de73b45b24e3ecb9543ff946ea",
      "parents": [
        "1bdbb07237de7854797ac1574088eef4623eddbb"
      ],
      "author": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Wed Apr 21 16:35:18 2010 -0700"
      },
      "committer": {
        "name": "Adam Powell",
        "email": "adamp@google.com",
        "time": "Fri Apr 23 15:49:07 2010 -0700"
      },
      "message": "Logo attribute for manifest and PackageManager methods to fetch it\n\nChange-Id: I2c5ac44a4e2af982a616b2012901d7395013b19f\n"
    },
    {
      "commit": "d7c096845dee7616095eda0fe9e7aa08f0ba9c20",
      "tree": "d20190ae42b25ce05960e16a89b8eb803d837602",
      "parents": [
        "22375e4a736c0d646c3cf0905c15126f7f4107c2"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 30 10:42:20 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 30 13:34:43 2010 -0700"
      },
      "message": "Package manager optimizations.\n\nAddresses:\nIssue #2550648: PackageManagerService setComponentEnabledSetting unconditionally\nwrites Settings xml\nIssue #2549084: Make PackageManager.addPermission have async version\n\nAlso make the writing of settings when changing the preferred activities to use\nthe same async mechanism, and fiddle with thread priorities in the background\nthread to go up to foreground priority when holding the lock to write settings\nand a few other places.  (At some point we should really clean this up to never\nacquire the main lock while in the background.)\n\nChange-Id: Ib2b7632543f6fb3f92a225518579f3b2d15e1413\n"
    },
    {
      "commit": "89c0ef4aba57172bbc9288f2d22c943f220a3dd1",
      "tree": "54366fa0f8ca63ff9f0db8c7356e84e6b7f50d81",
      "parents": [
        "ed531b37e5315dab8987b6bfb4adcbb49df9cf88"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Mar 18 20:03:31 2010 -0700"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Mar 19 11:40:50 2010 -0700"
      },
      "message": "Add -e package description to InstrumentationTestRunner javadoc.\n\nBug 2528316\n\nChange-Id: Ic707115e40a18521e0d57ee12f43df96be7033f2\n"
    },
    {
      "commit": "10362ab9d67d87c0c3217e804e64d3e7038211df",
      "tree": "3b564cde6d8a9d6fd219116051befad97e635df7",
      "parents": [
        "d3d9b85ef4e2991480201df91455c2ad7b8e0b78"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 11:13:50 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Mar 12 11:14:55 2010 -0800"
      },
      "message": "Add missing license notices on test classes\n\nChange number and file origin info\n\n34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase2.java\n48099-p9 frameworks/base/test-runner/src/android/test/RenamingDelegatingContext.java\n40550-p9 frameworks/base/test-runner/src/android/test/BundlePrinter.java\n87783-p9 frameworks/base/test-runner/src/android/test/IsolatedContext.java\n34691-p9 frameworks/base/test-runner/src/android/test/ProviderTestCase.java\n\nChange-Id: I1fea36db24e73f91ffdf43b84ff73be55478b53a\n"
    },
    {
      "commit": "1877d0158b529663b8315482e7346a7bcaa96166",
      "tree": "5194b59937b70c2f48366f27a4458d4043957d16",
      "parents": [
        "cd47f11dfad012be1b176ea06904a00da157ed7b"
      ],
      "author": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Thu Mar 04 17:48:13 2010 -0800"
      },
      "committer": {
        "name": "Brad Fitzpatrick",
        "email": "bradfitz@android.com",
        "time": "Fri Mar 05 12:08:39 2010 -0800"
      },
      "message": "Add \"call\" method on ContentProvider.\n\nThis permits implementing interfaces which are faster than using\nremote Cursors.  It then uses it for Settings \u0026 SettingProvider, which\ntogether account for ~50% of total ContentProvider event loop stalls\nacross Froyo dogfooders.\n\nFor fetching Settings this looks like it should reduce average\nSettings lookup from 10 ms to 0.4 ms on Sholes, once the\nSettingsProvider serves most gets from in-memory cache.  Currently it\nbrings the Sholes average down from 10ms to 2.5 ms while still using\nSQLite queries on each get.\n"
    },
    {
      "commit": "69120a73d0f7a1862d51e0a95ebd5e507fee8cd2",
      "tree": "32d52fcfaf9b039c80ee29a689101f5337dfc2a6",
      "parents": [
        "59dc9ecec6e4f53a1a2934b08c7f779d2b0a0d9a"
      ],
      "author": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Feb 26 18:21:15 2010 -0800"
      },
      "committer": {
        "name": "Paul Westbrook",
        "email": "pwestbro@google.com",
        "time": "Fri Feb 26 18:24:29 2010 -0800"
      },
      "message": "Bug 2306842\n\nSince MockAccountManager was passing null to the AccountManager\nconstructor, unit tests where the AccountManager attempts to call\nthe AccountManagerService were crashing.\n\nNow the getAccountsByTypeAndFeatures and blockingGetAuthToken\n(which are the calls that the Gmail unit tests call) call a small\nstub\n\nAt some point, all of the other AccountManager calls should be stubbed\nout\n"
    },
    {
      "commit": "0375fa12c7f94bfc9c840721dcc5215b6c7575d6",
      "tree": "d2723b227d3f01956d2f51279fff63374536c722",
      "parents": [
        "925b4da0975ad98ece8a631040afa55b07cebb36"
      ],
      "author": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 23 12:36:06 2010 -0800"
      },
      "committer": {
        "name": "Doug Zongker",
        "email": "dougz@android.com",
        "time": "Tue Feb 23 12:36:06 2010 -0800"
      },
      "message": "fix error in javadoc\n\nThe \"@link LargeTest\" is broken since it doesn\u0027t know where that class is.\n\nChange-Id: Ie15e40bac8a1965427e351926b2208775e79cb13\n"
    },
    {
      "commit": "88e03a97366d08fc69d852cf2219f9d0b1916af4",
      "tree": "99e50be3bfd8a264b6d84133e4e05ea59e2c50ef",
      "parents": [
        "b09cc2cde25d02f668b8bc2115a9479425f48703"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 09:57:11 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Mon Feb 22 18:08:35 2010 -0800"
      },
      "message": "Add ability to run tests restricted to given annotation.\n\nAnd ability to exclude tests with given annotation.\n\nAlso fix class cast compile warning in emma output method.\n\nBug 2239240\n\nChange-Id: I56273a51a8c58a690680bdb612615fab69e6e13f\n"
    },
    {
      "commit": "08d13c3cbb0b250b84ca861edb462060556aead9",
      "tree": "9704cbf808666df16479b4b3a86e7e5c1dfd10e2",
      "parents": [
        "e70f61b1160e953e5e4d18d30a463fa9ba821779"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 18 15:42:13 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 18:38:30 2010 -0800"
      },
      "message": "Fix code coverage output message when running tests in non-raw mode.\n\nBug 2082804\n"
    },
    {
      "commit": "e70f61b1160e953e5e4d18d30a463fa9ba821779",
      "tree": "763d50921749fb256c7e2b656db045ee21277b06",
      "parents": [
        "fda25347b8aaa860e0fdbc972c0f4411c85f8fa3"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:49:27 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Sat Feb 20 17:29:05 2010 -0800"
      },
      "message": "Retry test-runner tests move.\n\nThis time change the frameworks makefile so it only includes test-runner/src\nin the public API.\n"
    },
    {
      "commit": "c1ca8c51c616d1517b18bf24feaa9f8f1430c835",
      "tree": "d4b1e47a6cbcb24f8f278d93c69041d3bcf1d38b",
      "parents": [
        "9db619e5d3420c53d94866a02b8f3ed298afe636"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:31:05 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 10:31:05 2010 -0800"
      },
      "message": "Revert \"Move framework test-runner unit tests to be closer to their source.\"\n\nThis reverts commit 12093976a4842a795491cfd2b1d3b71e18503f2d.\n"
    },
    {
      "commit": "12093976a4842a795491cfd2b1d3b71e18503f2d",
      "tree": "04d06cdfe57151ca3856eab6c405f260583cf1fa",
      "parents": [
        "5df3a9017eaac2aef2ad360ce8f298b2d60b5536"
      ],
      "author": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Thu Feb 18 17:56:11 2010 -0800"
      },
      "committer": {
        "name": "Brett Chabot",
        "email": "brettchabot@android.com",
        "time": "Fri Feb 19 09:58:29 2010 -0800"
      },
      "message": "Move framework test-runner unit tests to be closer to their source.\nMove the test-runner source into a separate src folder to accommodate the test\nmove.\n"
    }
  ]
}
