)]}'
{
  "log": [
    {
      "commit": "c1838af88fad0178134b508da825483433a6f93c",
      "tree": "cf519ace50f977b2538d6b46533f142cad53deb1",
      "parents": [
        "12e08d1f3a1d91317b6e35831d3495f92a5edfc4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 22 15:46:25 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 22 15:46:25 2026 -0400"
      },
      "message": "Avoid quadratic processing in ReversedLinesFileReader (f013) (#901)\n"
    },
    {
      "commit": "12e08d1f3a1d91317b6e35831d3495f92a5edfc4",
      "tree": "acb8adf7019ebb5a35c898d108d8d2168d398b41",
      "parents": [
        "c3bdb4bccd97b9a4b81038e6d3df061fcd6b8d12"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Thu Oct 22 15:45:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 15:45:21 2026 -0400"
      },
      "message": "Avoid quadratic processing in ReversedLinesFileReader (f013) (#901)\n\nAccumulate long-line remainders in segments and scan only new block data\nplus boundary bytes. Document the encoded line-size limit and exception.\n\nExpand coverage for charsets, split separators, multiple long lines, and\noversized lengths. Add a scaling benchmark and restrict benchmark source\ncompilation to Java files.\n\nValidation: Full suite passed with 36 skips; all 329 reader tests,\nCheckstyle, Javadoc, and benchmark checks passed."
    },
    {
      "commit": "c3bdb4bccd97b9a4b81038e6d3df061fcd6b8d12",
      "tree": "787b4dfbc5eb46fc090defafd1b0e5c45b385417",
      "parents": [
        "40dc116bbc3b9a8adf2dadc9991e7268a862aec9"
      ],
      "author": {
        "name": "Sharang Gupta",
        "email": "sharang@sharanggupta.dev",
        "time": "Thu Oct 22 13:02:43 2026 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 08:02:43 2026 -0400"
      },
      "message": "Run two tests that were missing @Test (#899)\n\nCharsetsTest.testIsUTF8CharsetUTF8 and FileTimesTest.testIsUnixTimeFileTimeNull were added without @Test, so JUnit never ran them."
    },
    {
      "commit": "40dc116bbc3b9a8adf2dadc9991e7268a862aec9",
      "tree": "07190d246e93684c0ee302d0cd17c96a8c0a1970",
      "parents": [
        "8513e477568c7f8c337bd79d30d698d9099164d3"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Wed Oct 21 22:06:47 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 22:06:47 2026 -0400"
      },
      "message": "Reject NUL characters in FileUtils URL-to-file conversions (f011) Part 2 (#900)\n\n* Document FileUtils URL decoding and containment checks (f011)\n\nExplain that percent-decoding can introduce parent-directory segments\nand\nseparators, and that callers must validate the resolved file system path\nwhen enforcing directory containment. Add cross-references and correct\ntoFiles exception documentation.\n\n* Reject NUL characters in FileUtils URL-to-file conversions (f011)\n\nValidate decoded paths in toFile(URL), also covering toFiles(URL...),\nwhile preserving malformed-escape leniency and other control characters.\nDocument the exception and add a release note.\n\nAdd tests for literal and encoded NUL, rejection through toFiles,\nsingle-pass decoding, and preservation of other control characters."
    },
    {
      "commit": "8513e477568c7f8c337bd79d30d698d9099164d3",
      "tree": "105d46f8839efe92ceba47d594724e3d215e0e4b",
      "parents": [
        "a6b724a95c54c5fe85d30354183624a581672986"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Wed Oct 21 20:28:41 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 20:28:41 2026 -0400"
      },
      "message": "Document FileUtils URL decoding and containment checks (f011) (#898)\n\nExplain that percent-decoding can introduce parent-directory segments\nand\nseparators, and that callers must validate the resolved file system path\nwhen enforcing directory containment. Add cross-references and correct\ntoFiles exception documentation."
    },
    {
      "commit": "a6b724a95c54c5fe85d30354183624a581672986",
      "tree": "8b968a291523e02f3348190a64a32beb44e914f1",
      "parents": [
        "eb839ade32c870faceba08c395f7fadc6e976bc3"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Oct 21 15:23:35 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Oct 21 15:23:35 2026 -0400"
      },
      "message": "Bump ossf/scorecard-action from 2.4.4 to 2.5.0\n"
    },
    {
      "commit": "eb839ade32c870faceba08c395f7fadc6e976bc3",
      "tree": "94a7d37c4ea4bf7669cfa00e56dcd4651a8b4893",
      "parents": [
        "2751aa79e08fe7663423ea1683af761a1dd44944"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 20:12:26 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 20:12:26 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.38.3 to 4.39.0\n"
    },
    {
      "commit": "2751aa79e08fe7663423ea1683af761a1dd44944",
      "tree": "8437b704b97d269f33ff21ae8419481d95c996c0",
      "parents": [
        "e6a89ed17117a28ec0cdc6ff6acc0f031b55c5ab"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 17:36:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Oct 20 17:36:48 2026 -0400"
      },
      "message": "Fix *? matching in FilenameUtils.wildcardMatch() (f012) (#896)\n"
    },
    {
      "commit": "e6a89ed17117a28ec0cdc6ff6acc0f031b55c5ab",
      "tree": "52cdca3f38d8ae566f13ce64a45830c4a60667ab",
      "parents": [
        "f9de7a458b9ff70151994bbbacae3088047b8338"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Tue Oct 20 17:35:29 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 17:35:29 2026 -0400"
      },
      "message": "Fix *? matching in FilenameUtils.wildcardMatch() (f012) (#896)\n\nRemove the exception that prevented a star followed by a question mark\nfrom\nbacktracking. This also corrects matching in WildcardFileFilter and\nWildcardClassNameMatcher, affecting ObjectStreamClassPredicate and\nValidatingObjectInputStream accept and reject lists.\n\nAdd matcher, file-filter, and serialization regressions, including\nreference\ncomparisons. Update Javadocs and document that affected patterns can\nmatch\nmore names.\n\nSort members"
    },
    {
      "commit": "f9de7a458b9ff70151994bbbacae3088047b8338",
      "tree": "95be2f33784959544c76a57e913e85f9a6423a9c",
      "parents": [
        "e8e28ed4b27626d4926587eda33d8a8806b9dde9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 21:07:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 21:07:56 2026 -0400"
      },
      "message": "Fix directory deletion through Windows junctions (f010) (#895)"
    },
    {
      "commit": "e8e28ed4b27626d4926587eda33d8a8806b9dde9",
      "tree": "8e1dc8d30d328e1b8cf228ee29efffd114d98b94",
      "parents": [
        "1008583d2c393bb7e1aafe3fca2f05db7b91219e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Oct 19 21:06:13 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 21:06:13 2026 -0400"
      },
      "message": "Fix directory deletion through Windows junctions (f010) (#895)\n\n* Fix directory deletion through Windows junctions (f010)\n\nDetect junctions using NOFOLLOW_LINKS attributes and prevent traversal\nthrough nested junctions during recursive deletion. Preserve rejection\nof non-directory special files and document the remaining race\nconditions.\n\nAdd regression tests for junctions, exit-time deletion, attribute-read\nfailures, disappearing entries, and FIFO rejection.\n\n* Fix directory deletion through Windows junctions (f010)\n\nDetect junctions using NOFOLLOW_LINKS attributes and prevent traversal\nthrough nested junctions during recursive deletion. Preserve rejection\nof non-directory special files and document the remaining race\nconditions.\n\nAdd regression tests for junctions, exit-time deletion, attribute-read\nfailures, disappearing entries, and FIFO rejection."
    },
    {
      "commit": "1008583d2c393bb7e1aafe3fca2f05db7b91219e",
      "tree": "a019bc42231b894db163a9b90a93c6d946777651",
      "parents": [
        "f7e3b92d12db59dcf43b7f2d3fb882b48ef06afc"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 17:10:13 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 17:10:13 2026 -0400"
      },
      "message": "Fix NIO error handling in visible and non-empty file filters (f009)\n(#894)"
    },
    {
      "commit": "f7e3b92d12db59dcf43b7f2d3fb882b48ef06afc",
      "tree": "0712308e7b6b69d8e9d8bcf1a9946c5209657601",
      "parents": [
        "bbecb6bd1b4f3d8446eebd64dfd45487872e22ff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Oct 19 17:09:02 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 17:09:02 2026 -0400"
      },
      "message": "Fix NIO error handling in visible and non-empty file filters (f009) (#894)\n\n* Fix NIO error handling in visible and non-empty file filters (f009)\n\nNegate status predicates before handling IOException so VISIBLE and\nNOT_EMPTY reject paths whose status cannot be determined.\n\nReuse PathUtils.isEmptyDirectory() for directory checks while preserving\nnull and classic File behavior. Document the behavior and add regression\ntests for status, directory-open, directory-close, and missing-path\nerrors.\n\n* Handle directory iteration failures in EmptyFileFilter\n\nUnwrap DirectoryIteratorException so the existing IOException handler\nrejects paths whose empty status cannot be determined.\n\nDocument the behavior and add regression coverage for both filters,\nmatches(), stream closure, and subclass error-handler behavior."
    },
    {
      "commit": "bbecb6bd1b4f3d8446eebd64dfd45487872e22ff",
      "tree": "1858b62c19411485c28d3d83d8b29b646d6baabe",
      "parents": [
        "35ed80d5f933a327c325615970287d025f0cf775"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 13:52:59 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 13:52:59 2026 -0400"
      },
      "message": "Bound wildcard matching backtracking and memory use (f008) (#892)"
    },
    {
      "commit": "35ed80d5f933a327c325615970287d025f0cf775",
      "tree": "7b724a5a69dbc15a939e2cdd6482986dc73c7aa3",
      "parents": [
        "08ea7bfdce421401fb0b2ddab7e03499415db74e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Oct 19 13:52:03 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 13:52:03 2026 -0400"
      },
      "message": "Bound wildcard matching backtracking and memory use (f008) (#892)\n\nReplace the backtracking stack with a single retry position at the most\nrecent effective star. Reuse literal searches to avoid combinatorial\nretries without retaining input-dependent matching states.\n\nPreserve existing matching behavior, including the *? quirk and Unicode\ncase handling. Document O(nm) worst-case time and O(m) temporary space.\nSome question-heavy retry patterns trade lower allocation for higher\nCPU.\n\nAdd regression tests for adversarial patterns, long inputs, file\nfilters,\nand serialized class names. Verify Java 8 compatibility and the full\nMaven build."
    },
    {
      "commit": "08ea7bfdce421401fb0b2ddab7e03499415db74e",
      "tree": "1d6e1e7310e93c41f613b9bf8fdf1e81092dc774",
      "parents": [
        "3ee93376e2e4c7b0c3bbb5373afaaee9a76f2b88"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 10:07:04 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Oct 19 10:07:04 2026 -0400"
      },
      "message": "Clarify FilenameUtils.concat() prefix and containment behavior (f006)\n(#891)"
    },
    {
      "commit": "3ee93376e2e4c7b0c3bbb5373afaaee9a76f2b88",
      "tree": "bfd76b7faacd0cf8977cca3fa894962eeb352ea5",
      "parents": [
        "fc5e8577a862cef3227a01a9219ff3670cad06e1"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Mon Oct 19 10:05:52 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Oct 19 10:05:52 2026 -0400"
      },
      "message": "Clarify FilenameUtils.concat() prefix and containment behavior (f006) (#891)\n\nDocument that recognized prefixes replace the base path across\nplatforms,\nincluding mixed-separator UNC prefixes. Explain that normalization does\nnot ensure directory containment or resolve symbolic links.\n\nAdd regression tests preserving existing UNC separator handling and\ndemonstrating that parent traversal can escape the base path."
    },
    {
      "commit": "fc5e8577a862cef3227a01a9219ff3670cad06e1",
      "tree": "e535d9bd9213073188be780a2db5cace211ed6e6",
      "parents": [
        "fd90f364c356503faa3953166735e0c79da847e8"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 12:09:31 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 12:09:31 2026 -0400"
      },
      "message": "Fix FileSystem filename validation and sanitization (f005 (#890)"
    },
    {
      "commit": "fd90f364c356503faa3953166735e0c79da847e8",
      "tree": "8d1cccb8b5ce17f041b388323d770fc201803d64",
      "parents": [
        "7df2ddfc90ee35a5dbeb9c490b431d4d0e4faef9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 12:09:10 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 12:09:10 2026 -0400"
      },
      "message": "Fix FileSystem filename validation and sanitization (f005 (#890)"
    },
    {
      "commit": "7df2ddfc90ee35a5dbeb9c490b431d4d0e4faef9",
      "tree": "50c6fd5cc34120f5f009d1ad16ba211be2b6b67f",
      "parents": [
        "49d556ee6a780ba871894807dba9e92b38f55c7a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sun Oct 18 12:08:04 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 18 12:08:04 2026 -0400"
      },
      "message": "Fix FileSystem filename validation and sanitization (f005) (#890)\n\nReject dot-names, Windows trailing dots and spaces, and GENERIC path\nseparators. Match Windows reserved names case-insensitively, ignoring\nspaces before extensions, and preserve false for null candidates.\n\nSanitize reserved names, reject unsuitable Windows replacements, and\ncheck output legality after truncation. Update Javadoc and add\nregression\ncoverage for charset handling, length boundaries, and file creation."
    },
    {
      "commit": "49d556ee6a780ba871894807dba9e92b38f55c7a",
      "tree": "9407d4b3c27460fcf6b8278de4d814b8a37ddb99",
      "parents": [
        "6c3164e8795802895c2ca9a3216659556b4aa5a2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 07:35:07 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Oct 18 07:35:07 2026 -0400"
      },
      "message": "Add optional deserialization resource limits to\nValidatingObjectInputStream while preserving existing filter\nrestrictions (f003)\n"
    },
    {
      "commit": "6c3164e8795802895c2ca9a3216659556b4aa5a2",
      "tree": "39e5940294c0d73f31dde9173fea673c6f9b66c4",
      "parents": [
        "00898f94864b72af92d03397601381f1dc1ad835"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:54:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:54:03 2026 -0400"
      },
      "message": "Bump actions/setup-java from 6.0.1 to 6.1.0\n"
    },
    {
      "commit": "00898f94864b72af92d03397601381f1dc1ad835",
      "tree": "eece742071e4de567c00178ca067734215759b63",
      "parents": [
        "07dd7942216389ca39d54688f67515483e419794"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:44:28 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 15:44:28 2026 -0400"
      },
      "message": "Fix race in ReadAheadInputStream executor close test\n\nReplace Thread.yield() with an executor barrier so closure assertions\nrun after the read-ahead task finishes. Add deterministic coverage for\nclosing during an active read, verify caller ownership of the executor,\nand bound execution with a timeout.\n"
    },
    {
      "commit": "07dd7942216389ca39d54688f67515483e419794",
      "tree": "cc54c6f2ebb2932e479fb9051caa8c13270584b6",
      "parents": [
        "8286c5629b877d96d5bf8e63115d6fba3b8df156"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 13:51:11 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 17 13:51:11 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 105 to 106\n"
    },
    {
      "commit": "8286c5629b877d96d5bf8e63115d6fba3b8df156",
      "tree": "2b7050670b0dd4ab096772fe0f6a9e21f4c5912b",
      "parents": [
        "10e347f78dd6df103caafdbacc1b240b7261fcd9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sat Oct 17 13:50:31 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 17 13:50:31 2026 -0400"
      },
      "message": "Bump Apache Commons Parent from 105 to 106 (#886)"
    },
    {
      "commit": "10e347f78dd6df103caafdbacc1b240b7261fcd9",
      "tree": "642115dc9698b44a13bd22a83005944575e242b2",
      "parents": [
        "3337b5f267ce6da3bb6e8ed15bdabf79b9e33356"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 09:20:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 09:20:20 2026 -0400"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\n"
    },
    {
      "commit": "3337b5f267ce6da3bb6e8ed15bdabf79b9e33356",
      "tree": "e57d44f0515f0ba2a0272db1258265f777d06516",
      "parents": [
        "53dbe0fea3fb83568bfef35e217f88df96c7d90d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 08:29:07 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 08:29:07 2026 -0400"
      },
      "message": "Revert \"Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\"\n\nThis reverts commit 53dbe0fea3fb83568bfef35e217f88df96c7d90d.\n"
    },
    {
      "commit": "53dbe0fea3fb83568bfef35e217f88df96c7d90d",
      "tree": "35b6a944ed309c2ab6c98f72f404b3df3fe4502f",
      "parents": [
        "e352747924476361421091345422e5471dd4e743"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:33:15 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:33:15 2026 -0400"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.5 to 4.38.3\n"
    },
    {
      "commit": "e352747924476361421091345422e5471dd4e743",
      "tree": "e57d44f0515f0ba2a0272db1258265f777d06516",
      "parents": [
        "6ee0e0d8c5e50abc7b6fd9c19fb1f3f046dfcbcd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:24:55 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Oct 15 06:24:55 2026 -0400"
      },
      "message": "Bump actions/upload-artifact from 7.0.1 to 7.0.2\n"
    },
    {
      "commit": "6ee0e0d8c5e50abc7b6fd9c19fb1f3f046dfcbcd",
      "tree": "940d45bc38909736cfc25de0a8f51f30ff5f183b",
      "parents": [
        "59b09cf2327fd789372181b189a04ae16c7b5203"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sun Oct 11 12:13:48 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Oct 11 12:13:48 2026 -0400"
      },
      "message": "Bump commons-codeccommons-codec from 1.22.1 to 1.23.0 (#885)"
    },
    {
      "commit": "59b09cf2327fd789372181b189a04ae16c7b5203",
      "tree": "60f69f5ef7a4af911dcb4838060c97da254bf544",
      "parents": [
        "4ea3ecac926d1c15af7f3cfc0a34e218c39bae49"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 10 08:01:22 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 10 08:01:22 2026 -0400"
      },
      "message": "Add github.autolink_jira\n"
    },
    {
      "commit": "4ea3ecac926d1c15af7f3cfc0a34e218c39bae49",
      "tree": "a18b5dabc831063e7bc8e8a27066b214c97b12f1",
      "parents": [
        "9934bca781ba5f18aee767062aaf04ead2bf7f00"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 11:12:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 11:12:43 2026 -0400"
      },
      "message": "Relax QueueInputStream timeout test for busy CI hosts\n\nIncrease the upper time limit from 1 to 10 seconds to accommodate\nscheduling delays while retaining the 500 ms minimum-wait and\nempty-result assertions.\n\nValidated queue stream tests on macOS with Java 8.\n"
    },
    {
      "commit": "9934bca781ba5f18aee767062aaf04ead2bf7f00",
      "tree": "8a702188a07ca376f9e16a19bc012b0adf63f2d9",
      "parents": [
        "05f968e913fb43f21ccecb44eba5d523999999f9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 10:34:28 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Oct 03 10:34:28 2026 -0400"
      },
      "message": "Update GH CI from Java 26 to 27\n\nUpdate Java 27-ea to 28-ea.\n"
    },
    {
      "commit": "05f968e913fb43f21ccecb44eba5d523999999f9",
      "tree": "ce94e883578393d504dce07c027693e66aa48511",
      "parents": [
        "ecee1279ba2d186be958b4ccd889a361d5dee526",
        "736f42f31a27100d49d0fcf81d1c5d8e0ec2b513"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:22:19 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:22:19 2026 -0400"
      },
      "message": "Merge branch \u0027master\u0027 of https://github.com/apache/commons-io.git"
    },
    {
      "commit": "ecee1279ba2d186be958b4ccd889a361d5dee526",
      "tree": "e56cdc74f9f003cb1e66da509dd114597c8bdb86",
      "parents": [
        "e5b23b3ddfc4b5c18e6784f96bc36e61fb795c9d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:22:13 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:22:13 2026 -0400"
      },
      "message": "[test] Bump com.google.jimfs:jimfs from 1.3.1 to 1.3.2 (#884)\n"
    },
    {
      "commit": "736f42f31a27100d49d0fcf81d1c5d8e0ec2b513",
      "tree": "9f2a852369f04351bb91d68b83930ac28c4b5167",
      "parents": [
        "e5b23b3ddfc4b5c18e6784f96bc36e61fb795c9d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Sep 30 08:21:23 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 08:21:23 2026 -0400"
      },
      "message": "Bump com.google.jimfs:jimfs from 1.3.1 to 1.3.2 (#884)\n\nBumps [com.google.jimfs:jimfs](https://github.com/google/jimfs) from 1.3.1 to 1.3.2.\n- [Release notes](https://github.com/google/jimfs/releases)\n- [Commits](https://github.com/google/jimfs/compare/v1.3.1...v1.3.2)\n\n---\nupdated-dependencies:\n- dependency-name: com.google.jimfs:jimfs\n  dependency-version: 1.3.2\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "e5b23b3ddfc4b5c18e6784f96bc36e61fb795c9d",
      "tree": "830667eb4885e020532ca52cbe75b7ca8b903942",
      "parents": [
        "5629c4f5d7f7ee1921cfb0b810f56fd3b78c81ae"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:21:09 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Sep 30 08:21:09 2026 -0400"
      },
      "message": "[test] Bump commons.bytebuddy.version from 1.18.10 to 1.18.14"
    },
    {
      "commit": "5629c4f5d7f7ee1921cfb0b810f56fd3b78c81ae",
      "tree": "350748ec079fde5db655ed87a04a00d3338538fd",
      "parents": [
        "f4fc54a131914203784c7c816817689feed22679"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Sep 30 08:20:26 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 30 08:20:26 2026 -0400"
      },
      "message": "Bump commons.bytebuddy.version from 1.18.10 to 1.18.14 (#883)\n\nBumps `commons.bytebuddy.version` from 1.18.10 to 1.18.14.\n\nUpdates `net.bytebuddy:byte-buddy` from 1.18.10 to 1.18.14\n- [Release notes](https://github.com/raphw/byte-buddy/releases)\n- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)\n- [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.18.10...byte-buddy-1.18.14)\n\nUpdates `net.bytebuddy:byte-buddy-agent` from 1.18.10 to 1.18.14\n- [Release notes](https://github.com/raphw/byte-buddy/releases)\n- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)\n- [Commits](https://github.com/raphw/byte-buddy/compare/byte-buddy-1.18.10...byte-buddy-1.18.14)\n\n---\nupdated-dependencies:\n- dependency-name: net.bytebuddy:byte-buddy\n  dependency-version: 1.18.14\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n- dependency-name: net.bytebuddy:byte-buddy-agent\n  dependency-version: 1.18.14\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "f4fc54a131914203784c7c816817689feed22679",
      "tree": "3119dc5d73584a6cca8a3ff8833476ba8be7c1cb",
      "parents": [
        "f7ff9ebc42705101da532fbf95a5e906b2900f4c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 29 17:34:44 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 29 17:34:44 2026 -0400"
      },
      "message": "[test] Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0\n"
    },
    {
      "commit": "f7ff9ebc42705101da532fbf95a5e906b2900f4c",
      "tree": "8e6b3cb0443975d5a5b7e39318da642fd9ee28cf",
      "parents": [
        "2c6bf8dea065e96651661d5e277e35b2f343d879"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Tue Sep 29 17:33:21 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 29 17:33:21 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-lang3 from 3.20.0 to 3.21.0 (#882)"
    },
    {
      "commit": "2c6bf8dea065e96651661d5e277e35b2f343d879",
      "tree": "e06cbb69577b78c4a59cc27850e4e878d2ca71a5",
      "parents": [
        "c5a9cc8e0d7036674e31417c89339c715ad8684c"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Sep 24 12:57:30 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Sep 24 12:57:30 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.38.1 to 4.38.2\n"
    },
    {
      "commit": "c5a9cc8e0d7036674e31417c89339c715ad8684c",
      "tree": "8a2b712f74060695fa561cf4f927c9e7a02df489",
      "parents": [
        "8ad9867d693745937abc31b4c0c63669c63d9b31"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 22 07:26:48 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Sep 22 07:26:48 2026 -0400"
      },
      "message": "Protect main branches\n"
    },
    {
      "commit": "8ad9867d693745937abc31b4c0c63669c63d9b31",
      "tree": "f1d43c7ecfd500a8d3b43f7657a2a9cb74c9f00c",
      "parents": [
        "3a12f66442ec55893b68b9ffe82d5664cb6f97a8"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:16:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:16:02 2026 -0400"
      },
      "message": "Bump github/codeql-action/* from 4.37.9 to 4.38.1\n"
    },
    {
      "commit": "3a12f66442ec55893b68b9ffe82d5664cb6f97a8",
      "tree": "c71f6d94122e6fa04d8b02057456bfdf50a03746",
      "parents": [
        "f720b24227eb6972d4281d330ddb64c1416f81a4"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:07:37 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Sep 19 11:07:37 2026 -0400"
      },
      "message": "Bump actions/setup-java from 6.0.0 to 6.0.1\n"
    },
    {
      "commit": "f720b24227eb6972d4281d330ddb64c1416f81a4",
      "tree": "4fbd0de1753c1249cb4317e96278a6aa920221d6",
      "parents": [
        "a8c5a8c36d66e31855a5b1977d084664e9dc8812"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:19:02 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:19:02 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 104 to 105.\n"
    },
    {
      "commit": "a8c5a8c36d66e31855a5b1977d084664e9dc8812",
      "tree": "84065d18727b08e7e4c2bde000d31ce141ce6e03",
      "parents": [
        "530066cf0c616a49489cd4077c9a192ca2b92977"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:08:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:08:20 2026 -0400"
      },
      "message": "Remove legacy Surefire configuration exclusions that no longer apply.\n"
    },
    {
      "commit": "530066cf0c616a49489cd4077c9a192ca2b92977",
      "tree": "073d32f489dd61f9241c8dff36fc76635e99ce06",
      "parents": [
        "fbf2fa83eff249941f41c9843ea8b5fe9cbe0d63"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:04:24 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 10:04:24 2026 -0400"
      },
      "message": "Remove legacy Surefire configuration exclusion that no longer applies.\n"
    },
    {
      "commit": "fbf2fa83eff249941f41c9843ea8b5fe9cbe0d63",
      "tree": "0a9e4978b3faf54c23981a1a7057c4b0b035a5c0",
      "parents": [
        "edd1cd734dca7bac7c5cfce07240d3140423f978"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 09:58:55 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Sep 07 09:58:55 2026 -0400"
      },
      "message": "Update change action for org.apache.commons:commons-parent\n"
    },
    {
      "commit": "edd1cd734dca7bac7c5cfce07240d3140423f978",
      "tree": "abad1877ea0e1bbdca69fcdbec826c45f128dcb4",
      "parents": [
        "d204c9153058859e6c7edbd3532a28ed1dbdc02d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 31 11:18:47 2026 +0000"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 31 11:18:47 2026 +0000"
      },
      "message": "Bump github/codeql-action/analyze from 4.37.8 to 4.37.9.\n"
    },
    {
      "commit": "d204c9153058859e6c7edbd3532a28ed1dbdc02d",
      "tree": "ac025d5f4b0e7e7dffe2aa59803a9400d89a0569",
      "parents": [
        "a49c6036ee0eff901238c117712d860ede36df60"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 20:30:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 20:30:03 2026 -0400"
      },
      "message": "[IO-780] Do not discard CharsetEncoder errors in ReaderInputStream\n(#874)."
    },
    {
      "commit": "a49c6036ee0eff901238c117712d860ede36df60",
      "tree": "72687e63d482ccba5a543c5f64d9fa43f15c0920",
      "parents": [
        "1902a0836dd358e95aab9c043c58b42572e65153"
      ],
      "author": {
        "name": "Tanvir Alam",
        "email": "tanviralamshuvo@gmail.com",
        "time": "Thu Aug 27 17:27:27 2026 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 27 20:27:27 2026 -0400"
      },
      "message": "[IO-780] Do not discard CharsetEncoder errors in ReaderInputStream (#874)\n\n* [IO-780] Do not discard CharsetEncoder errors in ReaderInputStream\n\nflush() was overwriting lastCoderResult after encode() reported malformed\ninput (for example a trailing unpaired surrogate), so read() returned EOF\ninstead of throwing CharacterCodingException.\n\n* [IO-780] Remove unused assertDoesNotThrow import"
    },
    {
      "commit": "1902a0836dd358e95aab9c043c58b42572e65153",
      "tree": "7f9986492a0c0156a4cc336e7771a68690b8739d",
      "parents": [
        "a7011276ed44394c5ca40a3dc6779e436a719038"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 13:41:33 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Thu Aug 27 13:41:33 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.7.0 to 6.0.0.\n"
    },
    {
      "commit": "a7011276ed44394c5ca40a3dc6779e436a719038",
      "tree": "d1a5cf4ba79fef9eb895db3d052e3c6c902444a1",
      "parents": [
        "d83aeb6f4774aee75d857b29fb6cd89132c9a91b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 25 14:13:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 25 14:13:56 2026 -0400"
      },
      "message": "Bump github/codeql-action/init from 4.37.7 to 4.37.8\n"
    },
    {
      "commit": "d83aeb6f4774aee75d857b29fb6cd89132c9a91b",
      "tree": "932f5ab2ad77771104e295a98504de7bcf80e9c1",
      "parents": [
        "5161cc47161ae0b29479673e2e790fbf31b5a22f"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 11:19:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 11:19:51 2026 -0400"
      },
      "message": "Make the call to the \"sun.\" packages optional when cleaning byte buffers\n(#872).\n"
    },
    {
      "commit": "5161cc47161ae0b29479673e2e790fbf31b5a22f",
      "tree": "c0cd0dc93518dfb8a97f2012fe06327f2fe0bfb9",
      "parents": [
        "eea8b6645001749339e7bf1aa91a250c2ee4bd25"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sat Aug 22 11:00:38 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 22 11:00:38 2026 -0400"
      },
      "message": "Make the call to the \"sun.\" packages optional when cleaning byte buffers (#872)"
    },
    {
      "commit": "eea8b6645001749339e7bf1aa91a250c2ee4bd25",
      "tree": "23a9ae7d256e9c9fa7a27502da39ca6edbd8f26e",
      "parents": [
        "2ba2e465458f35d9bbd1e425598df1b6f05759b0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:45:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:45:56 2026 -0400"
      },
      "message": "Bump org.apache.commons:commons-parent from 103 to 104.\n"
    },
    {
      "commit": "2ba2e465458f35d9bbd1e425598df1b6f05759b0",
      "tree": "f72cb533c9016a17ba4f36cd74c97752a8a74d0d",
      "parents": [
        "b0b1db458498fc792d954a56d7bc246426e5e645"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:45:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:45:51 2026 -0400"
      },
      "message": "Remove trailing whitespace"
    },
    {
      "commit": "b0b1db458498fc792d954a56d7bc246426e5e645",
      "tree": "6e893248d80951d9598f8c1b3e86e285d80b6803",
      "parents": [
        "dfc78e85ebb04443ebd4a415ca90177720adddb8"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:36:15 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:36:15 2026 -0400"
      },
      "message": "Reduce vertical whitepsace.\n"
    },
    {
      "commit": "dfc78e85ebb04443ebd4a415ca90177720adddb8",
      "tree": "c8760f1486f22692a95cb4f7fd4002f96d5304b8",
      "parents": [
        "578e9c86d1704641d2abf2fca8a73160f36c2ba0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:23:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:23:41 2026 -0400"
      },
      "message": "Fix SpotBugs USO_UNSAFE_METHOD_SYNCHRONIZATION in\nProxyReader.mark()/reset().\n"
    },
    {
      "commit": "578e9c86d1704641d2abf2fca8a73160f36c2ba0",
      "tree": "58b04466959980134eb3c1766e69f1e153786a0a",
      "parents": [
        "cab5a9f4d4c52446093e15fd539c34df47d08f18"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:23:14 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:23:14 2026 -0400"
      },
      "message": "Fix SpotBugs USO_UNSAFE_METHOD_SYNCHRONIZATION in\nProxyInputStream.mark()/reset().\n"
    },
    {
      "commit": "cab5a9f4d4c52446093e15fd539c34df47d08f18",
      "tree": "aa2b62432744bf9f26d0da00449ba671a6b5380d",
      "parents": [
        "ece23c9ce9501cd1ed16221c36bb67241b181f39"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:13:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:13:51 2026 -0400"
      },
      "message": "Fix SpotBugs USO_UNSAFE_METHOD_SYNCHRONIZATION in\nNullInputStream.mark()/reset().\n"
    },
    {
      "commit": "ece23c9ce9501cd1ed16221c36bb67241b181f39",
      "tree": "f3e5adaf5b22871ed1087e7dc31d9a6627ff263b",
      "parents": [
        "75529ad16053c289a2da5bdaa06b803a96182e9a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:10:44 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:10:44 2026 -0400"
      },
      "message": "Fix SpotBugs USO_UNSAFE_METHOD_SYNCHRONIZATION in\nFileCleaner.exitWhenFinished().\n"
    },
    {
      "commit": "75529ad16053c289a2da5bdaa06b803a96182e9a",
      "tree": "e19aa25983a20e1867a962d3ca6b106ce6a5abe9",
      "parents": [
        "a11542fb329559e8e2b544273c21dd4c79724991"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:07:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 22 09:07:03 2026 -0400"
      },
      "message": "Javadoc\n\nUse longer lines.\n"
    },
    {
      "commit": "a11542fb329559e8e2b544273c21dd4c79724991",
      "tree": "ef32440255b991be37942c5194a0a64a3f9285cd",
      "parents": [
        "c28e2a8b357044848674c7491370bfc67da14cfb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 18 16:01:20 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 18 16:01:20 2026 -0400"
      },
      "message": "Bump codeql-action from 4.37.6 to 4.37.7\n"
    },
    {
      "commit": "c28e2a8b357044848674c7491370bfc67da14cfb",
      "tree": "999f826ede420f7523d901e1c2fa00820beb3b25",
      "parents": [
        "5442640dbb62ee474ab4a2346438cc935ffeb2f9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 17 16:35:59 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 17 16:35:59 2026 -0400"
      },
      "message": "[IO-892] Add maximum traversal depth to FileAlterationObserver (#870).\n\n- Sort members\n- Update changes.xml\n"
    },
    {
      "commit": "5442640dbb62ee474ab4a2346438cc935ffeb2f9",
      "tree": "c050b1cc839cd4d4c5e0264ce65b8dbe9da3243a",
      "parents": [
        "c0b87d31d590c8fdde2af38673f4c4a873bdd886"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 17 16:31:32 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Mon Aug 17 16:31:32 2026 -0400"
      },
      "message": "Sort members\n"
    },
    {
      "commit": "c0b87d31d590c8fdde2af38673f4c4a873bdd886",
      "tree": "e384570c1a4d7c6c148dce91deeddc718ee5ee89",
      "parents": [
        "21510fec1ebd32a31757232930f3c547a84b2338"
      ],
      "author": {
        "name": "zx8410-ops",
        "email": "zx8410@gmail.com",
        "time": "Tue Aug 18 04:30:04 2026 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Aug 17 16:30:04 2026 -0400"
      },
      "message": "IO-892: Add maximum traversal depth to FileAlterationObserver (#870)\n\n* IO-892: Add maximum traversal depth to FileAlterationObserver\n\nAdd an optional maximum traversal depth to the observer builder and apply\nthe boundary before listing child entries during initialization and polling.\n\nPreserve unlimited recursive traversal by default and cover the new boundary\nsemantics, serialization compatibility, and directory-listing behavior with\ntests.\n\nGenerated-by: OpenAI Codex\n\n* IO-892: Address review comments\n\nUse a primitive int for maxDepth, clarify the traversal-boundary Javadoc, and add the release-note developer metadata.\n\nGenerated-by: OpenAI Codex"
    },
    {
      "commit": "21510fec1ebd32a31757232930f3c547a84b2338",
      "tree": "c34fda99d7412c03be9ff0a7e0e61023672f4899",
      "parents": [
        "ca7e78b7f199a2b2335df4102658a14642619a43"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 16 08:08:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 16 08:08:18 2026 -0400"
      },
      "message": "Add PathUtils.touch(Path, FileTime) and use it to\nfix FileAlterationObserverWithListenerExceptionTest on Java 8."
    },
    {
      "commit": "ca7e78b7f199a2b2335df4102658a14642619a43",
      "tree": "fddd6dee05d0be61298035ae456c07cd443dc3b8",
      "parents": [
        "e1e143cfbbe6e40a6130f108b79aa8ab0afedf30"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 17:19:09 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 17:19:09 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "e1e143cfbbe6e40a6130f108b79aa8ab0afedf30",
      "tree": "c42a0e162052df64a0396cea4474088b8fc5d441",
      "parents": [
        "ec028a8b2e3c11864b93fe51799825243de41660"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 17:16:56 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 17:16:56 2026 -0400"
      },
      "message": "FileAlterationObserver now notifies all listeners even if one throws an\nexception.\n"
    },
    {
      "commit": "ec028a8b2e3c11864b93fe51799825243de41660",
      "tree": "1782b27bbdb6e26f8149830d56290028d65e3e70",
      "parents": [
        "7363a855785d95545cb29c1e6fdac55631323bc9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@users.noreply.github.com",
        "time": "Sat Aug 15 11:11:12 2026 -0400"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Aug 15 11:11:12 2026 -0400"
      },
      "message": "Update toString test for FileEntry class"
    },
    {
      "commit": "7363a855785d95545cb29c1e6fdac55631323bc9",
      "tree": "586dd9ed61d144572e21754b31a3adf19e152d0e",
      "parents": [
        "e98f1af9d70b859ba087a92a8b2305695c953503"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 10:09:19 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 10:09:19 2026 -0400"
      },
      "message": "Add SerializableFileTimeTest tests.\n"
    },
    {
      "commit": "e98f1af9d70b859ba087a92a8b2305695c953503",
      "tree": "cee28b514782c9c4baaf874aab34baa17b37d1c8",
      "parents": [
        "aedb5e99b4c4044e05f00a28ae64916d10749dbd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:57:38 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:57:38 2026 -0400"
      },
      "message": "Fix test compiler warning.\n"
    },
    {
      "commit": "aedb5e99b4c4044e05f00a28ae64916d10749dbd",
      "tree": "4623ab28ef7eaa063c2c20d7942d99b0cd530191",
      "parents": [
        "363d166c127e8d1c15d97274de0011e39f2e2562"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:45:46 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:45:46 2026 -0400"
      },
      "message": "Add FileEntry unit tests.\n"
    },
    {
      "commit": "363d166c127e8d1c15d97274de0011e39f2e2562",
      "tree": "8c8d646049a34db2c7b6ee1b90cffb401966b8c9",
      "parents": [
        "6519d7329955a72e169b26b810f05f27f9f43ab2"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:34:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:34:43 2026 -0400"
      },
      "message": "FileEntry.setName(String) now throws NullPointerException on null input."
    },
    {
      "commit": "6519d7329955a72e169b26b810f05f27f9f43ab2",
      "tree": "23dc28f72a3a1e2c31bd018b519c1eef271d77a1",
      "parents": [
        "4a988821bb0198c9527f97eb88070e80b1165f4d"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:25:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:25:18 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "4a988821bb0198c9527f97eb88070e80b1165f4d",
      "tree": "b15901c8a8142cfe0d32dbb8566e1b1c13628eb2",
      "parents": [
        "cc3bd440af9f39ffe4fbd57623a42e88110a371b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:13:58 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:13:58 2026 -0400"
      },
      "message": "Better internal name.\n"
    },
    {
      "commit": "cc3bd440af9f39ffe4fbd57623a42e88110a371b",
      "tree": "fa808115259eca8274106a28192ae635f2dfc98d",
      "parents": [
        "b8ee1f888629520fa2d7d12096107436e66f327a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:11:27 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:11:27 2026 -0400"
      },
      "message": "Flip FileEntry children null test from getter to setter.\n"
    },
    {
      "commit": "b8ee1f888629520fa2d7d12096107436e66f327a",
      "tree": "cd6897e41aebb26e8ed557026ff1069b5a312aed",
      "parents": [
        "f134dd2a1ec88b3981a24373906e8eb228c87fdc"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:10:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sat Aug 15 09:10:43 2026 -0400"
      },
      "message": "Fix bug in FileEntryTest.testSerializable()\n"
    },
    {
      "commit": "f134dd2a1ec88b3981a24373906e8eb228c87fdc",
      "tree": "e3866fc4ea8a97451c6d769b1e23ecc34b69c0dd",
      "parents": [
        "fe2965a2660405e12c4889b2318a358b64e514a6"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 20:17:13 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 20:17:13 2026 -0400"
      },
      "message": "Let JUnit handle setup exception.\n"
    },
    {
      "commit": "fe2965a2660405e12c4889b2318a358b64e514a6",
      "tree": "87e495849a95b26a7f89e1d2b91effea9e8298d6",
      "parents": [
        "177dadcb2d5e7746d7cedb81c927e19a55462574"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 19:19:03 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 19:19:03 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "177dadcb2d5e7746d7cedb81c927e19a55462574",
      "tree": "5315c09ae6b09493da452a06336ac388dc6699c0",
      "parents": [
        "57e7465c46cb3ea0c297307c8c14597e70203acf"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 17:33:18 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 17:33:18 2026 -0400"
      },
      "message": "Add FileEntry.toString().\n"
    },
    {
      "commit": "57e7465c46cb3ea0c297307c8c14597e70203acf",
      "tree": "9840df54a8be2167eb049058fc0baff6b853696a",
      "parents": [
        "7dd6765de107429838ad2318850f4a011942350b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 16:42:11 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 16:42:11 2026 -0400"
      },
      "message": "Focus test and use fewer resources.\n"
    },
    {
      "commit": "7dd6765de107429838ad2318850f4a011942350b",
      "tree": "44d2173e31fd7f2d801cb19b804ca7aa081e56eb",
      "parents": [
        "acee2902de09af65fbd3eb2a8520af8499053838"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:23:26 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:23:26 2026 -0400"
      },
      "message": "Javadoc\n\nFormat tweaks\n"
    },
    {
      "commit": "acee2902de09af65fbd3eb2a8520af8499053838",
      "tree": "4f8d97a00a0d1210f8d9e17e132c3aa4d1fee470",
      "parents": [
        "20a7946782eea09d5506af15a5be63dc7134eacd"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:22:22 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:22:22 2026 -0400"
      },
      "message": "Javadoc\n\nFormat tweaks\n"
    },
    {
      "commit": "20a7946782eea09d5506af15a5be63dc7134eacd",
      "tree": "ec9033f2e10a882de2807d19d514952cbc094a0d",
      "parents": [
        "a6b1313af5ca79dfe4a84c22a05f00b09beec7c9"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:20:51 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 10:20:51 2026 -0400"
      },
      "message": "FileAlterationMonitor now allows other observers to be notified even if\none fails.\n"
    },
    {
      "commit": "a6b1313af5ca79dfe4a84c22a05f00b09beec7c9",
      "tree": "7bd8135a18312238f91af179899d71899a23d7db",
      "parents": [
        "7a6b5f2781c230c49c083e1882abdb5e0beaceb0"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:34:41 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:34:41 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "7a6b5f2781c230c49c083e1882abdb5e0beaceb0",
      "tree": "83c5c988a8f5c399e13204c50b81f7a7762534fe",
      "parents": [
        "ff484e6182b84ef114f4535332f9d9a684c06ece"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:30:44 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:30:44 2026 -0400"
      },
      "message": "Add FileEntryTest tests\n"
    },
    {
      "commit": "ff484e6182b84ef114f4535332f9d9a684c06ece",
      "tree": "cdf0529766289062f8e0b4806a276d56d673d290",
      "parents": [
        "be48191ff1a20c3fa4e6fdc3ff743c28dfa2212b"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:30:26 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Fri Aug 14 08:30:26 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "be48191ff1a20c3fa4e6fdc3ff743c28dfa2212b",
      "tree": "f4f92e7a87e2759b03e73e2db92b9dc2d4530fa3",
      "parents": [
        "ffd9ddae6e637c0be9ab63e3dfa5ca98f2230bc5"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Aug 05 14:14:12 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Wed Aug 05 14:14:12 2026 -0400"
      },
      "message": "Bump actions/setup-java from 5.6.0 to 5.7.0\n"
    },
    {
      "commit": "ffd9ddae6e637c0be9ab63e3dfa5ca98f2230bc5",
      "tree": "c665ad1ab4f2a16a28ef84c89fae99c0da22a74f",
      "parents": [
        "717a145aca192f9342b7ff80fc28e8756a15dfe6"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 04 15:58:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Tue Aug 04 15:58:43 2026 -0400"
      },
      "message": "Bump github/codeql-action from 4.37.3 to 4.37.6.\n"
    },
    {
      "commit": "717a145aca192f9342b7ff80fc28e8756a15dfe6",
      "tree": "7176c7fb28980026e990ba45ee9ae98b5ed12760",
      "parents": [
        "fa572ae84bd7e9386148ffa47964d82516158951"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:54:21 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:54:21 2026 -0400"
      },
      "message": "Fix dispatch tests.\n"
    },
    {
      "commit": "fa572ae84bd7e9386148ffa47964d82516158951",
      "tree": "61ac651dca95d47eb9a4c2f4d18b532f91f00c30",
      "parents": [
        "35b1e026bb7836c0ab695cbe505843b22d9cf6f3"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:50:58 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:50:58 2026 -0400"
      },
      "message": "Minimize the size of temporary buffers.\n\nJavadoc\n"
    },
    {
      "commit": "35b1e026bb7836c0ab695cbe505843b22d9cf6f3",
      "tree": "05032bfbcd2367c98eb38c5c9f88dfef3d039be6",
      "parents": [
        "dbb9ac0cc366df8655b7a5c7c43a869990adc06a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:40:49 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:40:49 2026 -0400"
      },
      "message": "Add tests"
    },
    {
      "commit": "dbb9ac0cc366df8655b7a5c7c43a869990adc06a",
      "tree": "6cef83813c0b522344a253d054baeac1839e025a",
      "parents": [
        "0b15afb855d52875f222fac1bf521ee7cef20f2e"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:29:26 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:29:26 2026 -0400"
      },
      "message": "Javadoc\n"
    },
    {
      "commit": "0b15afb855d52875f222fac1bf521ee7cef20f2e",
      "tree": "fbb82650b9b29be2c3983e818d057720c70e22bd",
      "parents": [
        "a17d7db28f71f3ea1d023bafe6706ac49a27b4cb"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:16:43 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:16:43 2026 -0400"
      },
      "message": "Assert some sanity on test fixtures.\n"
    },
    {
      "commit": "a17d7db28f71f3ea1d023bafe6706ac49a27b4cb",
      "tree": "a6841914c1f30e2b6df37e1396fc5268c1100a21",
      "parents": [
        "4635acb00a93d6f83f61e7564141540dfb098c64"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:06:04 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 17:06:04 2026 -0400"
      },
      "message": "Refactor test\n"
    },
    {
      "commit": "4635acb00a93d6f83f61e7564141540dfb098c64",
      "tree": "89ba8786cc9f4d59040d150b40f034a9ad58c1e9",
      "parents": [
        "adc61686e3adcf66ff3fafe00cfc356f23d4c58a"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 16:01:00 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 16:01:00 2026 -0400"
      },
      "message": "Add org.apache.commons.io.BuffersTest.testClearByteBufferDirectLargerThanDefaultBufferSize()\n"
    },
    {
      "commit": "adc61686e3adcf66ff3fafe00cfc356f23d4c58a",
      "tree": "e71dd11116dc1edb016d62ea76d4109c7a4e5ba3",
      "parents": [
        "88630f0177ebfc12d4ef5cb57e47b228e4b6f8ff"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 15:48:27 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 15:48:27 2026 -0400"
      },
      "message": "Improve internal documentation\n"
    },
    {
      "commit": "88630f0177ebfc12d4ef5cb57e47b228e4b6f8ff",
      "tree": "d0ee06eab12335bf774280fa4c2ab5cd25a9fbfa",
      "parents": [
        "eb60bd516b2ecf8c0c75c1dca2b5428d6d927cfe"
      ],
      "author": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 15:45:35 2026 -0400"
      },
      "committer": {
        "name": "Gary Gregory",
        "email": "garydgregory@gmail.com",
        "time": "Sun Aug 02 15:45:35 2026 -0400"
      },
      "message": "Javadoc\n"
    }
  ],
  "next": "eb60bd516b2ecf8c0c75c1dca2b5428d6d927cfe"
}
