)]}'
{
  "commit": "e491d142b2489bef96c8dce65c04a7a9c445f6e1",
  "tree": "30c9e33a0cd79fcd631c7adf3c853bdd12ea9f04",
  "parents": [
    "4f16073556f7978708fb71c87628cfe1692412d5"
  ],
  "author": {
    "name": "Christopher Tate",
    "email": "ctate@google.com",
    "time": "Wed Nov 04 10:45:49 2015 -0800"
  },
  "committer": {
    "name": "Christopher Tate",
    "email": "ctate@google.com",
    "time": "Wed Nov 04 10:57:37 2015 -0800"
  },
  "message": "Fix BlobBackupHelper state tracking\n\nThe disk-friendly use of BufferedInputStream in state parsing was\nactually breaking the state management system when multiple helpers\nare involved in backup.  The BufferedInputStream would blithely\npre-fetch 8K from the state file -- but that would consume some\nstate data that the dispatcher and subsequent helpers needed to see\nin order to properly evaluate prior state themselves.  The contract\nhere is that when using the helper mechanism, state-data consumption\nmust *only* consume as much data as the helper originally stored\ninto the file.\n\nSwitching to a direct-read stream instead fixes the problem by\navoiding read overrun.  The rest of the changes are expanded\ndebugging output that made diagnosis possible.\n\nBug 25473872\n\nChange-Id: I91de38dfec96f589700479f41ac26f144ba4463c\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "cdc62dc4c912f813fda8b032d82f0e8f7f07a417",
      "old_mode": 33188,
      "old_path": "core/java/android/app/backup/BlobBackupHelper.java",
      "new_id": "82d0a94ce0da82c5a7293aad427cb17421161fe7",
      "new_mode": 33188,
      "new_path": "core/java/android/app/backup/BlobBackupHelper.java"
    }
  ]
}
