)]}'
{
  "commit": "bdf535de4fad0ce37a226ff656b44cafb624b42c",
  "tree": "1a873a5b5671d2600ed5c1b579b94452b7a5593b",
  "parents": [
    "4c7e100910cb1b40fc3aed0a21abe0806645c02a"
  ],
  "author": {
    "name": "Shawn O. Pearce",
    "email": "spearce@spearce.org",
    "time": "Thu Oct 14 13:06:54 2010 -0700"
  },
  "committer": {
    "name": "Shawn O. Pearce",
    "email": "spearce@spearce.org",
    "time": "Wed Oct 27 08:37:31 2010 -0700"
  },
  "message": "Call ProgressMonitor.update() from main thread\n\nDon\u0027t permit transient worker threads to access the underlying output\nstream of a ProgressMonitor, as they might get marked as the stream\u0027s\nwriter thread.  Instead proxy update events from the workers back onto\nthe application\u0027s real work thread.  This ensures that the stream only\nsees a single thread, and its the thread that will remain alive for\nthe entire life cycle of the operation.\n\nThis fixes IOException(\"Write end dead\") during local repository fetch\nwhen threaded delta search is enabled.  One of the transient delta\nsearch threads became the designated writer for the pipe, and when it\nterminated the reader end thought the writer was dead, even though the\nmain writer thread was still executing in PackWriter.\n\nBug: 326557\nChange-Id: I01d1b20a3d7be1c0b480c7fb5c9773c161fe5c15\nSigned-off-by: Shawn O. Pearce \u003cspearce@spearce.org\u003e\n",
  "tree_diff": [
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "6839f8d3c16e5ab8d86ecb7778599b4ced8da0bf",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/lib/ThreadSafeProgressMonitorTest.java"
    },
    {
      "type": "modify",
      "old_id": "9708bb2f928c9ac44fc446dcafcad269eebf9367",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ThreadSafeProgressMonitor.java",
      "new_id": "9e8e256b01573133ea4a1d7fb3dc2d7464597d7f",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/lib/ThreadSafeProgressMonitor.java"
    },
    {
      "type": "modify",
      "old_id": "5e551e9d4941c11792f8bf402521e2d58a27068e",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/DeltaTask.java",
      "new_id": "aa0374618a6fc3721f020793a5f8e0f0af46478e",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/DeltaTask.java"
    },
    {
      "type": "modify",
      "old_id": "20c4bb0f9735216dbd038858c716fcf51b435470",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java",
      "new_id": "5986aca4e3a222efad3da2e43582256df3eed683",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/storage/pack/PackWriter.java"
    }
  ]
}
