)]}'
{
  "commit": "d0ebb2a70e44ed7e19dd83834bc3b4143d044711",
  "tree": "81012f89690f716f0e73c61b4a4baa49c1b82292",
  "parents": [
    "cac40fc37d673e6c60d05b6715ed7655608be50d"
  ],
  "author": {
    "name": "Thomas Wolf",
    "email": "twolf@apache.org",
    "time": "Sun May 17 20:59:00 2026 +0200"
  },
  "committer": {
    "name": "Matthias Sohn",
    "email": "matthias.sohn@sap.com",
    "time": "Wed May 20 00:36:14 2026 +0200"
  },
  "message": "TemporaryBuffer.LocalFile: use Files.newInputStream()\n\nOn Unix, FileInputStream.skip() uses lseek under the hood and allows\nskipping beyond EOF, which makes WorkingTreeIterator.computeLength() go\ninto an endless loop.\n\nFiles.newInputStream() returns a sun.nio.ch.ChannelInputStream, which\nfor files does not skip beyond EOF, avoiding this endless loop.\n\nAt the point WorkingTreeIterator.computeLength() is called, the input\nstream is either a CR/LF-processing stream, which extend InputStream,\nwhich actually uses reads to implement skipping and thus doesn\u0027t skip\nbeyond EOF, or a BlockInputStream, which also does not skip beyond the\ncontent length, or a stream obtained from TemporaryBuffer.LocalFile.\n\nBug: jgit-261\nChange-Id: I2e1bfe04c308220a1c2d819e6414a6ff7b2f9c34\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0513da2d155674c1e8b00b9c5370d59d49d05277",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java",
      "new_id": "f7dab121e8ba617fe84cc3c58482003b7869dc38",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit.test/tst/org/eclipse/jgit/util/FilterCommandsTest.java"
    },
    {
      "type": "modify",
      "old_id": "0f45162e717de83f31e3bda2fb1ab1e0b4676dac",
      "old_mode": 33188,
      "old_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java",
      "new_id": "fdb2679cd26591bc4bd68e530a988a3d7dae6546",
      "new_mode": 33188,
      "new_path": "org.eclipse.jgit/src/org/eclipse/jgit/util/TemporaryBuffer.java"
    }
  ]
}
