)]}'
{
  "commit": "654c615cf9fa17f97dd1aed497a482aba3b97c04",
  "tree": "6e429b7442d49c68f2f577ef81dec08299dc0cff",
  "parents": [
    "68afc54a39d753216e60cc8ee78e456e6b56c41b"
  ],
  "author": {
    "name": "Steve Elliott",
    "email": "steell@google.com",
    "time": "Tue Feb 15 00:18:13 2022 -0500"
  },
  "committer": {
    "name": "Steve Elliott",
    "email": "steell@google.com",
    "time": "Thu Mar 10 20:19:43 2022 +0000"
  },
  "message": "Defer MessagingGroup#recycle until bind completes\n\nThere is a \"race condition\" where a MessagingGroup is recycled while the\ncontents of that group are being used elsewhere in the\nConversationLayout, namely in the \"image message container\" used to show\nthe most recent image message in the collapsed state.\n\nThis state isn\u0027t cleared until later in the bind() process, which\nunfortunately depends on the groups being updated. For that reason, we\ndefer all synchronous calls to recycle() until the end of bind(), which\nwill ensure that the old groups are still around as long as necessary.\n\nFixes: 216202070\nTest: manual\nChange-Id: Idef815d54690544615512bd2bd1006f172403e18\n(cherry picked from commit 2a68270c76def0b635bd1583e9c1817d09dff969)\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e6deada45fc1a4c86a34732ed9e670eec074ab1e",
      "old_mode": 33188,
      "old_path": "core/java/com/android/internal/widget/ConversationLayout.java",
      "new_id": "a54f37cf54e2db9b9a4f53a47e1c7b8d07c3de88",
      "new_mode": 33188,
      "new_path": "core/java/com/android/internal/widget/ConversationLayout.java"
    }
  ]
}
