)]}'
{
  "log": [
    {
      "commit": "d019de580c08ff763c7e10d689ce4d34abeaddd1",
      "tree": "ecf4d56d0aa2b0538a9450035baf665bbf33a58d",
      "parents": [
        "ac59ee58dfc7781e9a0b3fed4e8218acdb1809e2"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 23 13:13:31 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Jul 25 10:39:25 2026 +0200"
      },
      "message": "H2 stream handlers to make sure content-length header value equals the sum of data payload as per RFC 9113, section 8.1.1\n"
    },
    {
      "commit": "ac59ee58dfc7781e9a0b3fed4e8218acdb1809e2",
      "tree": "befc9f5fcc83168be0609698dbcd7481dbfa3e23",
      "parents": [
        "59e3848848e2c8d882d76309eb035af20b32c580"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Jul 10 14:52:30 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Jul 24 14:13:05 2026 +0200"
      },
      "message": "Migrate JSON bindings to Jackson 3\n\nRename module and package to jackson3, move to tools.jackson 3.2.0,\ntranslate unchecked JacksonException to IOException, target Java 17.\n"
    },
    {
      "commit": "59e3848848e2c8d882d76309eb035af20b32c580",
      "tree": "e2f4d4a75b8c1d0c979f1c9daff69d3ebc19481f",
      "parents": [
        "8f0308f1736e38928e7fdaa7aa0d73eb04e240e8"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 23 12:55:45 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 23 12:59:26 2026 +0200"
      },
      "message": "H2 stream handler test improvements\n"
    },
    {
      "commit": "8f0308f1736e38928e7fdaa7aa0d73eb04e240e8",
      "tree": "d210eff39318c6c32b8d0d5a80f1cf0b4d8b4cfd",
      "parents": [
        "7f2f7b95bc7307856f7befd877698fbefc367746"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Tue Jul 21 13:41:07 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 23 11:13:56 2026 +0200"
      },
      "message": "Deprecate EntityUtils#toByteArray / EntityUtils#toString methods with no maxResultLength constraint\n"
    },
    {
      "commit": "7f2f7b95bc7307856f7befd877698fbefc367746",
      "tree": "8a147e9367ab6ba8fe553ab3fbe2c42e985fc29f",
      "parents": [
        "56c2d3df64445c56def687abcf18096609890748"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Jul 22 13:40:15 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Jul 22 15:17:49 2026 +0200"
      },
      "message": "Document nullable IOSession return values\n"
    },
    {
      "commit": "56c2d3df64445c56def687abcf18096609890748",
      "tree": "135cbe752cf998dd5619d4fb1f1818c953d8868d",
      "parents": [
        "9a044f0218bdf3ccff0b5b097b7689010b4751a9"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jul 22 09:30:15 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jul 22 09:33:35 2026 +0200"
      },
      "message": "Added #getContentLength method to MessageSupport\n"
    },
    {
      "commit": "9a044f0218bdf3ccff0b5b097b7689010b4751a9",
      "tree": "73889aa685742c8d868a43a51a9a4e519a33bc33",
      "parents": [
        "ffd0a430e70ddc980d00be7054afb6415807d67c"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Jun 02 18:47:57 2026 +0000"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jul 19 12:48:22 2026 +0200"
      },
      "message": "Bump actions/dependency-review-action from 4 to 5\n\nBumps [actions/dependency-review-action](https://github.com/actions/dependency-review-action) from 4 to 5.\n- [Release notes](https://github.com/actions/dependency-review-action/releases)\n- [Commits](https://github.com/actions/dependency-review-action/compare/v4...v5)\n\n---\nupdated-dependencies:\n- dependency-name: actions/dependency-review-action\n  dependency-version: \u00275\u0027\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "ffd0a430e70ddc980d00be7054afb6415807d67c",
      "tree": "352ba45fe734278ead6579a366c6a39adb520df7",
      "parents": [
        "fcdb53070b8d497b616db9f6aa1afb3b463f801e"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 16 10:23:41 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jul 16 10:23:41 2026 +0200"
      },
      "message": "Updated push branch declaration in maven.yml\n"
    },
    {
      "commit": "fcdb53070b8d497b616db9f6aa1afb3b463f801e",
      "tree": "2edeedb488ed1921358cf2b06755fc7cec67ffef",
      "parents": [
        "c73e499f68ac1791a4a260fa1a7b98432e6673ea"
      ],
      "author": {
        "name": "Aurélien Pupier",
        "email": "apupier@ibm.com",
        "time": "Thu Jul 02 10:21:41 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Jul 03 08:46:09 2026 +0200"
      },
      "message": "Restrict trigger push branch for GitHub Workflow\n\nFeature branches rarely need their own CI runs: the code is already\ntested when a pull request is opened against a release branch. If the\npush trigger has no branch restriction and pull_request is also\nconfigured, every push to a branch with an open PR runs the workflow\ntwice: once for the push and once for the PR synchronisation.\n\nAlways give the push trigger an explicit list of branches: this stops\nbranches created from a release branch from inheriting its workflow\nruns.\n\nsee https://cwiki.apache.org/confluence/pages/viewpage.action?pageId\u003d430408443#GitHubActionsRecommendedPractices-Restrictthepushtriggertospecificbranches\n\nSigned-off-by: Aurélien Pupier \u003capupier@ibm.com\u003e"
    },
    {
      "commit": "c73e499f68ac1791a4a260fa1a7b98432e6673ea",
      "tree": "68487d181f90383bede4a99f527957f2bdb97465",
      "parents": [
        "c1ccbd3c0968395b882eaed48b35e90fd76a7852"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jun 24 21:03:21 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jun 24 21:03:21 2026 +0200"
      },
      "message": "Upgraded HttpCore version to 5.5-beta3-SNAPSHOT"
    },
    {
      "commit": "c1ccbd3c0968395b882eaed48b35e90fd76a7852",
      "tree": "9313ff8a383e60351815ad4e076d097c5f8dda6e",
      "parents": [
        "e7747834c7e7a35c28366af538c5138cd4af7d7d"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jun 21 12:36:22 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jun 21 21:42:08 2026 +0200"
      },
      "message": "Updated release notes for HttpCore 5.5-beta2 release\n"
    },
    {
      "commit": "e7747834c7e7a35c28366af538c5138cd4af7d7d",
      "tree": "189ee90d1bca0dbcb901a5b281aaed7c61bea28e",
      "parents": [
        "0cbf3fc7fd57247719c937eee1c1c0db21560871"
      ],
      "author": {
        "name": "Mario Daniel Ruiz Saavedra",
        "email": "desiderantes93@gmail.com",
        "time": "Sun Jun 21 15:05:58 2026 -0300"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jun 21 21:38:39 2026 +0200"
      },
      "message": "Remove @Experimental for QUERY method and implement conformance to RFC 10008 (#673)\n"
    },
    {
      "commit": "0cbf3fc7fd57247719c937eee1c1c0db21560871",
      "tree": "0f7c574b8087d18b80a1cbefc30dccab5a410279",
      "parents": [
        "d21261e42651a531b8c4f009ded7bb8c478de5c1"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Jun 20 13:02:04 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jun 21 11:48:24 2026 +0200"
      },
      "message": "HTTPCORE-796: abort redirected requests during the expect-continue handshake the same way as errors\n"
    },
    {
      "commit": "d21261e42651a531b8c4f009ded7bb8c478de5c1",
      "tree": "4cfcb27090b30ff20b593d2c002400e69b446131",
      "parents": [
        "fdc53a32fe0fccf098cc67e71cd125e447c759ed"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Tue Jun 16 20:57:11 2026 -0700"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Jun 21 11:40:53 2026 +0200"
      },
      "message": "SSLIOSession: Fix regression in backpressure handling\n\nA regression was introduced by PR #513, submitted as a fix for\nHTTPCORE-775, which claimed that `SSLIOSession::write` was failing to\n\"handle\" `SSLEngineResult#BUFFER_OVERFLOW`. The issue was encountered by\nApache CXF, who provided a test case demonstrating the problem:\n\nhttps://github.com/apache/cxf/pull/2214/changes\n\nI investigated this reproducer and found that CXF was actually hanging\ndue to not signaling the availability of more data:\n\nhttps://github.com/apache/cxf/blob/f1b2c37bd9f3606cf7ca2d5d39cc1168e94fd9e4/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/CXFHttpAsyncRequestProducer.java#L97\n\nwhen `SSLIOSession#write` signaled backpressure here:\n\nhttps://github.com/apache/cxf/blob/f1b2c37bd9f3606cf7ca2d5d39cc1168e94fd9e4/rt/transports/http-hc5/src/main/java/org/apache/cxf/transport/http/asyncclient/hc5/CXFHttpAsyncRequestProducer.java#L75\n\nThe return value of `buf.produceContent` (which is ultimately\n`SSLEngineResult#bytesConsumed` -- 0, in this case) is simply being\ndiscarded. Changing the `CXFHttpAsyncRequestProducer#available` method\nas follows causes the problematic test cases to succeed instantly:\n\n```\n    @Override\n    public int available() {\n        if (buffer !\u003d null \u0026\u0026 buffer.hasRemaining()) {\n            return buffer.remaining();\n        } else if (buf !\u003d null \u0026\u0026 buf.length() \u003e 0) {\n            return buf.length();\n        }\n        return 0;\n    }\n```\n\nAdditionally, that PR appears to have introduced dysfunctional\nbackpressure handling into `SSLIOSession` by simply expanding the buffer\nas much as necessary to hold the encrypted `src` buffer. This in turn\nhas caused a significant regression in heap usage and latency, hence the\nneed to revert. I\u0027ve retained the test changes, since they did introduce\nmore coverage for TLSv1.3.\n"
    },
    {
      "commit": "fdc53a32fe0fccf098cc67e71cd125e447c759ed",
      "tree": "a36b89fcffb2fecde5c80011658ffaa5219655ed",
      "parents": [
        "cc30ee058a7b10cbf4ad3dd6270ab6d1f6a74c49"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jun 17 20:58:57 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Jun 17 20:58:57 2026 +0200"
      },
      "message": "Use max line length of 8192 and max header count of 100 for incoming HTTP/1 messages by default\n"
    },
    {
      "commit": "cc30ee058a7b10cbf4ad3dd6270ab6d1f6a74c49",
      "tree": "b9e3f857c70a479bbf581cd9c4b7ac9563b022e6",
      "parents": [
        "4a8a512eeb695b50d5a6d538985869b7f82c1992"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Jun 17 20:14:39 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Jun 17 20:14:39 2026 +0200"
      },
      "message": "Enforce configured HPACK header list size limit on initialization\n\nInitialize the HPACK decoder with the local max header list size instead\nof the HTTP/2 initial unlimited value.\n"
    },
    {
      "commit": "4a8a512eeb695b50d5a6d538985869b7f82c1992",
      "tree": "66dbc5e6def6aff3e33a0a18a6335666f84d3c89",
      "parents": [
        "8a3c5e6a240dc2b616175fc78c4e1df14d87888f"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Jan 03 09:58:35 2025 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Jun 15 19:06:15 2026 +0200"
      },
      "message": "HTTPCORE-774: fixed a race condition caused by concurrent update of the connection input window to the max value.\n\n(cherry picked from commit d31d0000084d1ffdd37a9596b53e2aa7779451bc)\n"
    },
    {
      "commit": "8a3c5e6a240dc2b616175fc78c4e1df14d87888f",
      "tree": "ced8582953119630bb26559af3cbfbe1d30c9a47",
      "parents": [
        "bad74f0a1b3d8369d5620b1e2595ac2135b993b7"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Jun 05 17:19:28 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Jun 05 17:23:37 2026 +0200"
      },
      "message": "Upgraded HttpCore version to 5.5-beta2-SNAPSHOT\n"
    },
    {
      "commit": "bad74f0a1b3d8369d5620b1e2595ac2135b993b7",
      "tree": "ad7b118ed0ad003451f2ce9b5e12ff6cf80081b9",
      "parents": [
        "9a32d54025c50c3c6f85c9f8eaa03585cbd6015c"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Jun 02 08:43:39 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Jun 02 08:43:39 2026 +0200"
      },
      "message": "Updated release notes for HttpCore 5.5-beta1 release\n"
    },
    {
      "commit": "9a32d54025c50c3c6f85c9f8eaa03585cbd6015c",
      "tree": "a5afb7bccf31f66a41f009004bb91bc2297cdca1",
      "parents": [
        "386189e645b1e40e3b8a9a2c668acc7852006e1e"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Jun 01 12:54:32 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Jun 01 12:54:32 2026 +0200"
      },
      "message": "Upgraded project and website component URLs\n"
    },
    {
      "commit": "386189e645b1e40e3b8a9a2c668acc7852006e1e",
      "tree": "3006e2714f7950c3c23e5a4967ab13b4a7bd19ee",
      "parents": [
        "1b159d1b1d2af8c808d4073d0a3f1f765eed523e"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon May 25 12:03:31 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon May 25 12:05:36 2026 +0200"
      },
      "message": "Optimization of ContentType parsing\n"
    },
    {
      "commit": "1b159d1b1d2af8c808d4073d0a3f1f765eed523e",
      "tree": "f5473e78e3fd5430766d0bdfe33c501746bed751",
      "parents": [
        "2d52e37056e6c023ceb93e5ce49386089ecd2023"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon May 25 11:32:07 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon May 25 12:05:36 2026 +0200"
      },
      "message": "Added header value transformation method to MessageSupport\n"
    },
    {
      "commit": "2d52e37056e6c023ceb93e5ce49386089ecd2023",
      "tree": "1fe1d0ba7cd9fac420fc57bcb5d7bfdd498ab393",
      "parents": [
        "1212b842fe761d1d414cabfb30c50ccdc326bb34"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun May 03 21:21:16 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun May 24 10:32:32 2026 +0100"
      },
      "message": "Reduce contention and disposer back-pressure in RouteSegmentedConnPool. Lazy waiter-skip deque, skip enqueue/drain when no waiters, O(1) late-hit completion, and a properly sized timed-out disposer pool.\n"
    },
    {
      "commit": "1212b842fe761d1d414cabfb30c50ccdc326bb34",
      "tree": "409a5c84add8d8ccf84dccf3f387c4f56295a57d",
      "parents": [
        "33695788573ede707594714f0fb365b14b1865ef"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat May 23 15:56:38 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat May 23 15:56:38 2026 +0200"
      },
      "message": "Path segment codec APIs\n"
    },
    {
      "commit": "33695788573ede707594714f0fb365b14b1865ef",
      "tree": "75044ba7bf5363ff59765d2f2271b8d9ea5af7da",
      "parents": [
        "ff9defb7629384ade12799897ff59efac47baac9"
      ],
      "author": {
        "name": "The Apache Software Foundation",
        "email": "root-asf-gitbox-commits@apache.org",
        "time": "Fri May 15 16:52:42 2026 -0500"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat May 23 15:26:51 2026 +0200"
      },
      "message": "Set up default protection ruleset for release branches\n"
    },
    {
      "commit": "ff9defb7629384ade12799897ff59efac47baac9",
      "tree": "3421adcf0010ca8d5e060f8b89964f41c36688ad",
      "parents": [
        "19802cff47a90b5dab8a8faf29a0c6514912af6e"
      ],
      "author": {
        "name": "Jack Green",
        "email": "JackPGreen@Gmail.com",
        "time": "Thu May 21 22:35:28 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat May 23 15:26:30 2026 +0200"
      },
      "message": "Fix broken Maven central badge in `README`\n\nThe Maven central badge in `README` does not load; the [URL to the badge has changed](https://github.com/softwaremill/maven-badges#a-new-dns-address).\r\n\r\nAs such, updated."
    },
    {
      "commit": "19802cff47a90b5dab8a8faf29a0c6514912af6e",
      "tree": "8a3396a93db125da99f1700c53ae8e15317fe804",
      "parents": [
        "35e7d53cc89475bb51e956f92af61ab2393e68f6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Fri May 01 16:56:15 2026 +0000"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Sat May 09 10:38:44 2026 -0700"
      },
      "message": "Bump the all group across 1 directory with 6 updates\n\nBumps the all group with 6 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.junit:junit-bom](https://github.com/junit-team/junit-framework) | `5.14.3` | `5.14.4` |\n| org.apache.logging.log4j:log4j-slf4j-impl | `2.25.3` | `2.25.4` |\n| org.apache.logging.log4j:log4j-core | `2.25.3` | `2.25.4` |\n| [org.apache.maven.plugins:maven-enforcer-plugin](https://github.com/apache/maven-enforcer) | `3.5.0` | `3.6.2` |\n| [com.github.siom79.japicmp:japicmp-maven-plugin](https://github.com/siom79/japicmp) | `0.25.4` | `0.25.6` |\n| [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson) | `2.21.1` | `2.21.3` |\n\n\n\nUpdates `org.junit:junit-bom` from 5.14.3 to 5.14.4\n- [Release notes](https://github.com/junit-team/junit-framework/releases)\n- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.3...r5.14.4)\n\nUpdates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.25.3 to 2.25.4\n\nUpdates `org.apache.logging.log4j:log4j-core` from 2.25.3 to 2.25.4\n\nUpdates `org.apache.logging.log4j:log4j-core` from 2.25.3 to 2.25.4\n\nUpdates `org.apache.maven.plugins:maven-enforcer-plugin` from 3.5.0 to 3.6.2\n- [Release notes](https://github.com/apache/maven-enforcer/releases)\n- [Commits](https://github.com/apache/maven-enforcer/compare/enforcer-3.5.0...enforcer-3.6.2)\n\nUpdates `com.github.siom79.japicmp:japicmp-maven-plugin` from 0.25.4 to 0.25.6\n- [Release notes](https://github.com/siom79/japicmp/releases)\n- [Changelog](https://github.com/siom79/japicmp/blob/master/release.py)\n- [Commits](https://github.com/siom79/japicmp/compare/japicmp-base-0.25.4...japicmp-base-0.25.6)\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.1 to 2.21.3\n- [Commits](https://github.com/FasterXML/jackson/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.junit:junit-bom\n  dependency-version: 5.14.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl\n  dependency-version: 2.25.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-core\n  dependency-version: 2.25.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-core\n  dependency-version: 2.25.4\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.maven.plugins:maven-enforcer-plugin\n  dependency-version: 3.6.2\n  dependency-type: direct:development\n  update-type: version-update:semver-minor\n  dependency-group: all\n- dependency-name: com.github.siom79.japicmp:japicmp-maven-plugin\n  dependency-version: 0.25.6\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: com.fasterxml.jackson.core:jackson-databind\n  dependency-version: 2.21.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "35e7d53cc89475bb51e956f92af61ab2393e68f6",
      "tree": "bdb27a9fcb0fd04a6383e43d22a9bfbf689566cc",
      "parents": [
        "18c8eb0bc80db5a0cc41a01ffd0c1514dbe586dd"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Apr 03 07:34:57 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Mon Apr 20 11:57:22 2026 +0100"
      },
      "message": "Configurable HTTP/2 PING ACK timeout\n"
    },
    {
      "commit": "18c8eb0bc80db5a0cc41a01ffd0c1514dbe586dd",
      "tree": "044476e15374edb90c8b5681ede6e671cfaa265f",
      "parents": [
        "660f1e5e742c4a968263727d1ea76230364d5d59"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Apr 19 13:03:51 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Apr 19 16:02:19 2026 +0200"
      },
      "message": "Updated JSON binding and async examples\n"
    },
    {
      "commit": "660f1e5e742c4a968263727d1ea76230364d5d59",
      "tree": "f81f88e08293e50bbbba9ed63ce480a316cc4cfb",
      "parents": [
        "54135f6cacfeb28208c58b4dadd355f6b5a2dfad"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Mar 31 14:02:03 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sat Apr 18 07:29:09 2026 +0100"
      },
      "message": "Use monotonic time for reactor and H2 timeout accounting\n"
    },
    {
      "commit": "54135f6cacfeb28208c58b4dadd355f6b5a2dfad",
      "tree": "af6b7ffdc6e584aa64d6ea91da87caa8a1b5043b",
      "parents": [
        "5324d057d7ff42e88719a99bbca08e65e2756fbd"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sat Apr 11 13:46:19 2026 +0200"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Apr 12 13:20:44 2026 +0100"
      },
      "message": "Add content type support to JSON async entity producers\n\nAllow AbstractJsonEntityProducer and JsonObjectEntityProducer to use an\nexplicit ContentType for streamed JSON request bodies.\n"
    },
    {
      "commit": "5324d057d7ff42e88719a99bbca08e65e2756fbd",
      "tree": "8b49383373a6c97c3a6f1f8f1bd5e3685c99ed78",
      "parents": [
        "598ab6582470116481836f0237c5e89d8065f78c"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Apr 04 09:53:31 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Apr 04 10:33:08 2026 +0200"
      },
      "message": "MessageSupport: methods for strict header and header element parsing\n"
    },
    {
      "commit": "598ab6582470116481836f0237c5e89d8065f78c",
      "tree": "b4e7f0b47729146fb1459e670344f9a4b43066c2",
      "parents": [
        "bc10809add832e42569f85d1e3cba2143bdabcf1"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Mon Mar 30 20:49:48 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Tue Mar 31 10:29:28 2026 +0200"
      },
      "message": "Fix flaky Docker compatibility tests caused by EMFILE in httpd container\n"
    },
    {
      "commit": "bc10809add832e42569f85d1e3cba2143bdabcf1",
      "tree": "d48001b43bb281af9113ac5a2bc14f082e3c6f32",
      "parents": [
        "b74914aa70ab9ea67e6513f6f0587e3caeb38a37"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Mar 29 15:12:55 2026 +0200"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Tue Mar 31 10:29:28 2026 +0200"
      },
      "message": "Fix H2 stream timeout handling on inbound frames\n"
    },
    {
      "commit": "b74914aa70ab9ea67e6513f6f0587e3caeb38a37",
      "tree": "ade5893f012f126f529843df7793e495609c8333",
      "parents": [
        "c7e0317bbe578f0263ed32517514f5bffe137d13"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Mar 23 14:05:23 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Mar 23 14:06:57 2026 +0100"
      },
      "message": "Ensure async data consumers can avoid NPE if they have been canceled / released from another thread at the same with concurrent data processing\n"
    },
    {
      "commit": "c7e0317bbe578f0263ed32517514f5bffe137d13",
      "tree": "5ece7d7220715d35b8d8f844e0a46a0aaf7fc161",
      "parents": [
        "354bd3fa783fd013c7b24a70923f9d9623a838d2"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Mar 20 08:27:10 2026 -0700"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Sat Mar 21 10:46:29 2026 -0700"
      },
      "message": "Upgrade to apache-rat-plugin 0.18\n"
    },
    {
      "commit": "354bd3fa783fd013c7b24a70923f9d9623a838d2",
      "tree": "06aca032de34f2436daf90541d88daec308b9ea5",
      "parents": [
        "0312b7d5322ebba290425f93bb8b66fbc8cf1cd7"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Sat Mar 21 10:01:35 2026 -0700"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Sat Mar 21 10:22:48 2026 -0700"
      },
      "message": "Require Java 17+ for Maven runtime\n\n* Decouple the Maven runtime JDK from the compile/test toolchain by\n  introducing `hc.build.toolchain.version` and overriding the inherited\n  `use-toolchains` profile to select the toolchain from that property\n  instead of `maven.compiler.source`.\n\n* Require Java 17 or newer to run Maven, but continue compiling and\n  testing against Java 8, 11, 17, and 21 toolchains.\n\n* Update CI to install JDK 17 for the Maven process and the matrix JDK\n  as the toolchain, generate `toolchains.xml`, and pass\n  `hc.build.toolchain.version` explicitly instead of disabling\n  toolchains and running everything on the host JDK.\n\nThis does not drop support for Java 8 consumers: published artifacts\nstill target Java 8 and the build can still compile and run tests on\nJava 8 through toolchains.\n"
    },
    {
      "commit": "0312b7d5322ebba290425f93bb8b66fbc8cf1cd7",
      "tree": "e4010efc04acbb48a66b81ffa1e93468ecdc8b7c",
      "parents": [
        "e2b52680ff615ed469ff25092173fd0fdfa70faa"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Mar 20 18:43:19 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Mar 21 15:22:53 2026 +0100"
      },
      "message": "Upgraded HttpCore version to 5.5-alpha2-SNAPSHOT"
    },
    {
      "commit": "e2b52680ff615ed469ff25092173fd0fdfa70faa",
      "tree": "484fb34e10360f0a253c59599868ec77c24242cb",
      "parents": [
        "e4a25a3eab1bde4d6b24452f1627747c297f75f6"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Mar 11 12:53:33 2026 +0100"
      },
      "committer": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Mar 18 08:23:39 2026 +0000"
      },
      "message": "Add deterministic, sleep-free connection pool fuzzer.\n"
    },
    {
      "commit": "e4a25a3eab1bde4d6b24452f1627747c297f75f6",
      "tree": "10aa1edde07090d07d261aed493c56aea957a635",
      "parents": [
        "85c87b592fe524beb111fe1131de4791b7451715"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Mar 15 10:54:37 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Mar 16 21:14:36 2026 +0100"
      },
      "message": "Updated release notes for HttpCore 5.5-alpha1 release\n"
    },
    {
      "commit": "85c87b592fe524beb111fe1131de4791b7451715",
      "tree": "be213a05072223c8a5b61975a766feaa3c391468",
      "parents": [
        "e1ebe30b796a52e3b839ddc3a1de79444a9145be"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sun Mar 15 12:23:19 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Mar 16 21:14:22 2026 +0100"
      },
      "message": "code cleanup in async request executors; fixed interface downcast ot its implementation\n"
    },
    {
      "commit": "e1ebe30b796a52e3b839ddc3a1de79444a9145be",
      "tree": "f087a8fb1d2977225e45d1f32f9d79507fb09ec3",
      "parents": [
        "f37ed19c1d16a2c9bf4c6c18072cb202aa19a8fc"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Mar 13 14:59:30 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 15:59:30 2026 +0100"
      },
      "message": "Validate HEADERS priority self-dependency (#652)\n\nTreat HEADERS with PRIORITY that depends on the same stream as a stream-level PROTOCOL_ERROR"
    },
    {
      "commit": "f37ed19c1d16a2c9bf4c6c18072cb202aa19a8fc",
      "tree": "4fa164cbb33f0d740ef072e443502d8a6fc7b986",
      "parents": [
        "80a3ad15f6cccf665c4fae34ee17238a1a7b9a0e"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Mar 13 14:59:09 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Mar 13 15:59:09 2026 +0100"
      },
      "message": "Fix HPACK table size update sequencing (#651)\n\nSignal the minimum pending table size first and the final size second"
    },
    {
      "commit": "80a3ad15f6cccf665c4fae34ee17238a1a7b9a0e",
      "tree": "22505c72bedd667817b47927d6f4bfd1940c1f3d",
      "parents": [
        "ddaccdef81f8ed8c8bb3897cf00aed16aec9dd0f"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Thu Mar 12 20:05:06 2026 -0700"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Thu Mar 12 20:05:20 2026 -0700"
      },
      "message": "Update Maven wrapper\n"
    },
    {
      "commit": "ddaccdef81f8ed8c8bb3897cf00aed16aec9dd0f",
      "tree": "626d10550cac8dee7a0efba4eccfb70610e95445",
      "parents": [
        "994c382ff57e2a6e5aaf6ca32acf35014446f168"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Mar 11 05:57:26 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Mar 11 06:57:26 2026 +0100"
      },
      "message": "Inject Clock into connection pools to make time-based behavior testable (#645)"
    },
    {
      "commit": "994c382ff57e2a6e5aaf6ca32acf35014446f168",
      "tree": "b1d2f0f3256671d028f9a0dea5fb4fff1007d046",
      "parents": [
        "d29c076d65442e4ded5c1d29f06ec68b650d4bb6"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Mar 07 12:36:44 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Sat Mar 07 15:14:59 2026 +0100"
      },
      "message": "StrictConnPool / LaxConnPool #lease method optimization\n"
    },
    {
      "commit": "d29c076d65442e4ded5c1d29f06ec68b650d4bb6",
      "tree": "00f8b71703fe240bdf9910f6c889924fcb9d31bd",
      "parents": [
        "3fe722feac4eb34a00a8a8d7783e1ef495627f0f"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sat Mar 07 10:56:13 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Mar 07 11:56:13 2026 +0100"
      },
      "message": "Fix lease timeout race to prevent pool entry leak (#649)"
    },
    {
      "commit": "3fe722feac4eb34a00a8a8d7783e1ef495627f0f",
      "tree": "f1ee5e65afffe48594825f8fcf37023f9f63d920",
      "parents": [
        "23bb1c8a55673e5db00bd76725e9ce598b073203"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Mar 01 14:11:37 2026 +0000"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Mon Mar 02 11:16:33 2026 -0800"
      },
      "message": "Bump the all group with 2 updates\n\nBumps the all group with 2 updates: [org.junit:junit-bom](https://github.com/junit-team/junit-framework) and [com.fasterxml.jackson.core:jackson-databind](https://github.com/FasterXML/jackson).\n\n\nUpdates `org.junit:junit-bom` from 5.14.2 to 5.14.3\n- [Release notes](https://github.com/junit-team/junit-framework/releases)\n- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.2...r5.14.3)\n\nUpdates `com.fasterxml.jackson.core:jackson-databind` from 2.21.0 to 2.21.1\n- [Commits](https://github.com/FasterXML/jackson/commits)\n\n---\nupdated-dependencies:\n- dependency-name: org.junit:junit-bom\n  dependency-version: 5.14.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: com.fasterxml.jackson.core:jackson-databind\n  dependency-version: 2.21.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "23bb1c8a55673e5db00bd76725e9ce598b073203",
      "tree": "3f59f1543f8e4486c09d95381ddaa3475c92587a",
      "parents": [
        "2b2b44e6d276042e7030e17fb246d14f89ade10e"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Feb 27 11:05:07 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Feb 27 11:05:07 2026 -0800"
      },
      "message": "LaxConnPool: Deallocate pool entry upon discarding expired connection\n"
    },
    {
      "commit": "2b2b44e6d276042e7030e17fb246d14f89ade10e",
      "tree": "b7a9e1040eff05a817625dd78c622e40b145ff6b",
      "parents": [
        "0bd018dccce30d3e067c9ac3508059abe70b2b6e"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 26 19:57:52 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 20:57:52 2026 +0100"
      },
      "message": "Fixed integer overflow handling in JsonTokenEventHandlerAdaptor (#642)\n\n"
    },
    {
      "commit": "0bd018dccce30d3e067c9ac3508059abe70b2b6e",
      "tree": "cc73d31017f4645798cf182ce01d8ad1c38b2de9",
      "parents": [
        "edb6a3635d208e6f5e23c31ad4cd67ed8b3fe13d"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 26 19:57:41 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 20:57:41 2026 +0100"
      },
      "message": "Ensure JsonSequenceResponseConsumer completes callback on error responses (#641)\n\nor without issue ID:\nFixed callback completion in JsonSequenceResponseConsumer on error responses"
    },
    {
      "commit": "edb6a3635d208e6f5e23c31ad4cd67ed8b3fe13d",
      "tree": "1aff4b6371db176e0eca3af626b7ac056fabe247",
      "parents": [
        "09a80d5ebe5316dfda95b036fed15b35eff460ed"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 26 19:57:29 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 20:57:29 2026 +0100"
      },
      "message": "HTTP/2: ignore unused PADDED flag on non-padded frames (#640)\n\nRaw frame readers were applying PADDED semantics whenever flag 0x08 was set, even for frame types that do not define padding, which violates RFC 9113. This change gates padding validation to DATA, HEADERS, and PUSH_PROMISE only, and reads the Pad Length as an unsigned octet in the NIO path. RFC says: “Unused flags MUST be ignored on receipt and MUST be left unset (0x00) when sending.\""
    },
    {
      "commit": "09a80d5ebe5316dfda95b036fed15b35eff460ed",
      "tree": "b01e09a0cabc67846f18ea42c8d7e33b67d6a95e",
      "parents": [
        "d36d531b1d18112954fb4eb40447868274f95b24"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 26 19:56:54 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 26 20:56:54 2026 +0100"
      },
      "message": "HTTP/2: enforce strict 3-digit :status pseudo-header (#639)\n\nReplace Integer.parseInt-based parsing with a strict 3-char digit check\n(first digit 1..5) to reject values like \"+200\" and \"0200\"."
    },
    {
      "commit": "d36d531b1d18112954fb4eb40447868274f95b24",
      "tree": "ca836b44a2ad3884fda592642f3455694409b751",
      "parents": [
        "9729123f0b6d361691bfe0786f85c1dcbc576f0a"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 24 10:38:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:38:18 2026 +0100"
      },
      "message": "Enforce RST_STREAM payload length regardless of stream existence (#638)\n\nRFC 9113 requires RST_STREAM frames to carry exactly 4 octets of payload; otherwise the endpoint MUST\ntreat it as a connection error of type FRAME_SIZE_ERROR."
    },
    {
      "commit": "9729123f0b6d361691bfe0786f85c1dcbc576f0a",
      "tree": "7144809a7873bbca769023f5a072b8c909d51f78",
      "parents": [
        "434697bd96dbe17817bc32d582cc48edea4f1767"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 24 10:27:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:27:40 2026 +0100"
      },
      "message": "TTP/2: validate pseudo-headers in inbound request trailers (#637)\n\nServerH2StreamHandler forwarded inbound request trailers (HEADERS in BODY\nstate) directly to AsyncServerExchangeHandler.streamEnd(...) without\nvalidating trailer semantics. This allowed pseudo-header fields (\u0027:...\u0027)\nto slip through on the server path."
    },
    {
      "commit": "434697bd96dbe17817bc32d582cc48edea4f1767",
      "tree": "7fd5dcc7e0c546cf6e284c6bc87f947a65eac80e",
      "parents": [
        "31a846aa8c141dd03c11c46b809a3171a3bd1b6a"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 24 10:27:17 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:27:17 2026 +0100"
      },
      "message": "HTTP/2: require peer SETTINGS as first frame (#636)\n\nEnforce RFC 9113 connection preface rules by rejecting non-SETTINGS frames\nreceived before the peer SETTINGS once the connection handshake is active."
    },
    {
      "commit": "31a846aa8c141dd03c11c46b809a3171a3bd1b6a",
      "tree": "cc3af4b9655327f30a690d0b922a9b596e95c329",
      "parents": [
        "ea32cf810fe541c885132f24b5219715b6e5ff39"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 24 10:19:00 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 24 11:19:00 2026 +0100"
      },
      "message": "HTTP/2: validate HEADERS PRIORITY payload length (#635)\n\nReject incoming HEADERS frames with the PRIORITY flag set but without the\nmandatory 5-byte priority fields, mapping the condition to a\nFRAME_SIZE_ERROR instead of allowing a BufferUnderflowException."
    },
    {
      "commit": "ea32cf810fe541c885132f24b5219715b6e5ff39",
      "tree": "5e93bab36a7f1859dcd272d38435c62b7497bf6a",
      "parents": [
        "898b77c40d890429df55639276bb75c9d400ce76"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 23 20:52:03 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 23 21:00:03 2026 +0100"
      },
      "message": "TrailersValidationSupport#verify to throw ProtocolException instead of H2ConnectionException\n"
    },
    {
      "commit": "898b77c40d890429df55639276bb75c9d400ce76",
      "tree": "3f794a0a65fd28e25a0152872d052afdc80ac95b",
      "parents": [
        "b945423429cd2001ef057d0b9d29e3c7996910da"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Mon Feb 23 07:29:42 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 23 08:29:42 2026 +0100"
      },
      "message": "HTTP/2: handle zero WINDOW_UPDATE increment (#634)\n\nTreat WINDOW_UPDATE with a window size increment of 0 as PROTOCOL_ERROR.\nApply stream error semantics for stream windows and connection error semantics\nfor stream 0, as required by RFC 9113."
    },
    {
      "commit": "b945423429cd2001ef057d0b9d29e3c7996910da",
      "tree": "1573215cecbc7be1d9ac1ebe10c4f6ed50cadeb9",
      "parents": [
        "6735aa0cc56d9aeac6f9751b58659ad2ebce11b8"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Feb 22 17:57:57 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 18:57:57 2026 +0100"
      },
      "message": "HTTP/2: ignore reserved MSB in 31-bit fields (#633)\n\nMask the reserved MSB when parsing the HTTP/2 stream identifier and 31-bit\nvalues carried by WINDOW_UPDATE, PUSH_PROMISE and GOAWAY. This avoids\ntreating otherwise valid values as negative ints and matches RFC 9113."
    },
    {
      "commit": "6735aa0cc56d9aeac6f9751b58659ad2ebce11b8",
      "tree": "2bacdcdc5e2cfdc91323029bdbb5f3ff0221019b",
      "parents": [
        "60e3d2cc00c0d1c54bce63ed6193a3785df521e3"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Feb 22 17:57:40 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 18:57:40 2026 +0100"
      },
      "message": "HTTP/2: tighten SETTINGS validation (#632)\n\nEnforce RFC 9113 constraints for SETTINGS_ENABLE_PUSH and reject invalid values.\nAccept zero values for peer settings that may legitimately be 0.\nAdd unit tests for client and server multiplexers."
    },
    {
      "commit": "60e3d2cc00c0d1c54bce63ed6193a3785df521e3",
      "tree": "8076d5d119300c67cdddfde0600f4c3bde19eba7",
      "parents": [
        "999a1e91aef6cbcd619ff9a7c57e1005c3e015a9"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Feb 22 17:57:19 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 22 18:57:19 2026 +0100"
      },
      "message": "Enforce ALPN when forcing HTTP/2 over TLS (#631)\n\nWhen endpoint policy is FORCE_HTTP_2, require strict ALPN negotiation on TLS\nsessions and fail if \u0027h2\u0027 is not negotiated (missing/empty/other protocol).\nRFC 9113 §3.2, §3.3: HTTP/2 over TLS MUST use protocol negotiation in TLS (ALPN)."
    },
    {
      "commit": "999a1e91aef6cbcd619ff9a7c57e1005c3e015a9",
      "tree": "2ca9af047e024960dd80c4b4d904f9d363363cff",
      "parents": [
        "b4c8268e0f0ea10126992a8396509d41620fef0b"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Fri Feb 20 05:59:00 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Feb 20 06:59:00 2026 +0100"
      },
      "message": "HTTP/2: fix frame header parsing and validate SETTINGS ACK length (#628)\n\nParse the 24-bit Length field as an unsigned value, treat flags as an\nunsigned byte, and mask out the reserved bit from the Stream Identifier.\n\nAlso enforce RFC 9113 §6.5: SETTINGS frames with ACK set MUST have an\nempty payload (Length \u003d 0); otherwise raise FRAME_SIZE_ERROR."
    },
    {
      "commit": "b4c8268e0f0ea10126992a8396509d41620fef0b",
      "tree": "8e2360c15fe2c69fc0bc8aabd074e7cf85add753",
      "parents": [
        "5ec71a641675f6d05d4c9a0a42a47ea9e1118270"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 19 17:50:05 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 18:50:05 2026 +0100"
      },
      "message": "HPACK: reject integer decoding overflow (#627)\n\nGuard HPACK integer decoding against signed overflow and throw HPackException instead.\nAdds a regression test for crafted values exceeding Integer.MAX_VALUE."
    },
    {
      "commit": "5ec71a641675f6d05d4c9a0a42a47ea9e1118270",
      "tree": "472a59beb92265b767f9a44b422696eda5571228",
      "parents": [
        "dab4d3f8c612e7651ecd47c3fc9deff5ff6324f2"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 19 17:46:31 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 19 18:46:31 2026 +0100"
      },
      "message": "HPACK decoder: enforce table size update sequencing (#626)\n\nReject dynamic table size updates after the first header field in a block (RFC 7541 §4.2)"
    },
    {
      "commit": "dab4d3f8c612e7651ecd47c3fc9deff5ff6324f2",
      "tree": "02660f7dd4a4a7c5e40e758878fd76a5c474b73c",
      "parents": [
        "18b6ba37486842a33bf972d6f9b065ca271fc31c"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Feb 18 16:36:29 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Feb 19 12:17:23 2026 +0100"
      },
      "message": "Use JsonNode to represent error object for Json response consumers\n"
    },
    {
      "commit": "18b6ba37486842a33bf972d6f9b065ca271fc31c",
      "tree": "c5250174349e54febacca8423792eb03e4cac01c",
      "parents": [
        "8181dce2f520702f574669445acc31e9440c70a9"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 16 15:40:33 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Feb 19 12:17:23 2026 +0100"
      },
      "message": "Replaced NoopJsonEntityConsumer by DiscardingEntityConsumer\n"
    },
    {
      "commit": "8181dce2f520702f574669445acc31e9440c70a9",
      "tree": "12b2fff5c50b11a1007ed394b457f16c3538e1ee",
      "parents": [
        "4e76bacdec4e8a85b26002c6c6cb798b58beaa47"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 19:25:44 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 20:25:44 2026 +0100"
      },
      "message": "HPACK decode failures must be treated as connection errors (COMPRESSION_ERROR) (#625)\n\nRFC 7540 / RFC 9113 require any HPACK decoding error to be handled as a\nconnection error of type COMPRESSION_ERROR. Map HPACK decode failures\n(including decoder runtime failures) to H2ConnectionException and avoid\nstream-local handling. Add regression tests for HEADERS / PUSH_PROMISE."
    },
    {
      "commit": "4e76bacdec4e8a85b26002c6c6cb798b58beaa47",
      "tree": "9c722ed66bd9168a60224fe39be3e8e25cfdb2f6",
      "parents": [
        "d9604f1a31a830048bc2f6cd9fedc9ab19d0d35f"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 18:58:03 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 19:58:03 2026 +0100"
      },
      "message": "Fix HTTP/2 stream priority memory leak by dropping unused PriorityValue cache from AbstractH2StreamMultiplexer. (#617)\n\n"
    },
    {
      "commit": "d9604f1a31a830048bc2f6cd9fedc9ab19d0d35f",
      "tree": "1283a2ec8d590985f9630493d2cd0c2e9be5d920",
      "parents": [
        "0e96329582c4dd74cc2e93f182507e85752d04c7"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 08:37:33 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 09:37:33 2026 +0100"
      },
      "message": "Handle unknown HTTP/2 frame types gracefully (#624)\n\n"
    },
    {
      "commit": "0e96329582c4dd74cc2e93f182507e85752d04c7",
      "tree": "0d9d03c3e03d36a93f940dde39c672fe327ee764",
      "parents": [
        "cd18a1cedde83a812d342b1ce86f5d2f04c024a6"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 08:23:03 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 09:23:03 2026 +0100"
      },
      "message": "HTTP/2: validate trailer header fields (#623)\n\nReject pseudo-headers in inbound and outbound trailers"
    },
    {
      "commit": "cd18a1cedde83a812d342b1ce86f5d2f04c024a6",
      "tree": "9e97d8ea5b0589c9937aea74be0bdc89ec7cc2cc",
      "parents": [
        "bc6b9b0c55c40780b8c46c2713a819f1cdf56905"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 08:05:11 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 09:05:11 2026 +0100"
      },
      "message": "Validate all TE header instances for HTTP/2 request conformance. (#620)\n\nReject any TE value other than trailers (including additional TE headers)."
    },
    {
      "commit": "bc6b9b0c55c40780b8c46c2713a819f1cdf56905",
      "tree": "d1b4981d60d2029c797306e5c85e2128de062984",
      "parents": [
        "34f2dbb686db34d8336cb92d5f460b063dfc5939"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Wed Feb 18 08:04:47 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Feb 18 09:04:47 2026 +0100"
      },
      "message": "HTTP/2: add granularity to validateAfterInactivity checks (#606)\n\nAvoid firing pre-flight PING more frequently than the configured minimum interval.\nPrevents busy looping and excessive traffic with pathological timeout values."
    },
    {
      "commit": "34f2dbb686db34d8336cb92d5f460b063dfc5939",
      "tree": "6af4203bf0692fcc8e970a828ff3756677899cc1",
      "parents": [
        "effee12133404ab1ab7669265e4cb57ec0b01813"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 17 07:25:32 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 08:25:32 2026 +0100"
      },
      "message": "HTTP/2: validate Host vs :authority strictly (#622)\n\n"
    },
    {
      "commit": "effee12133404ab1ab7669265e4cb57ec0b01813",
      "tree": "765d983f349d1a732d4fd0c976d3c7e6f4e120d3",
      "parents": [
        "0dd9816601b9aecb5724d4744c073eba070aa508"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 17 07:25:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 08:25:06 2026 +0100"
      },
      "message": "Reject Proxy-Connection header in HTTP/2 response conformance. (#621)\n\nRFC 9113 forbids connection-specific header fields in HTTP/2 messages."
    },
    {
      "commit": "0dd9816601b9aecb5724d4744c073eba070aa508",
      "tree": "0331e71e19feda39ebfc47f4064eebd52e2c9964",
      "parents": [
        "3298de4874aafb50265341aa5034fe0f36be3688"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Tue Feb 17 07:24:32 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Feb 17 08:24:32 2026 +0100"
      },
      "message": "Reject duplicate :authority pseudo-header in HTTP/2 request conversion. (#619)\n\nRFC 9113 forbids repeated pseudo-header fields; treat such requests as malformed."
    },
    {
      "commit": "3298de4874aafb50265341aa5034fe0f36be3688",
      "tree": "b448aea5043b1661f498d7f9a790be7a5b65d161",
      "parents": [
        "fbfe14dc5631e905844ec4a5330103971043d861"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sun Feb 15 12:38:52 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Feb 15 13:38:52 2026 +0100"
      },
      "message": "HTTPCORE-794 - Fix parseLenient to ignore illegal charset names (#618)\n\n"
    },
    {
      "commit": "fbfe14dc5631e905844ec4a5330103971043d861",
      "tree": "fb48652ab22fef22f4e2d9b2eb9fa3148d5cb2ce",
      "parents": [
        "ec7d5b10f821241d5797e3b5475d7a59e43541c1"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Feb 13 16:23:21 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Feb 13 16:28:18 2026 +0100"
      },
      "message": "Provide a more flexible CharSequenceAsyncEntityConsumer in addition to StringAsyncEntityConsumer\n"
    },
    {
      "commit": "ec7d5b10f821241d5797e3b5475d7a59e43541c1",
      "tree": "e39c270010c83e4ca95fdbd3da605ddde0498e61",
      "parents": [
        "e056786e08e2e0afad68ef4341a476368c86f058"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Wed Feb 04 12:02:43 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Feb 13 16:16:10 2026 +0100"
      },
      "message": "Server and client side async execution pipeline assemblers; updated API usage examples\n"
    },
    {
      "commit": "e056786e08e2e0afad68ef4341a476368c86f058",
      "tree": "4b6064bacc39c223ce6a0a470c96fc91f9524a3f",
      "parents": [
        "dbc40d01e0f12e9a67169036905b62518e5baf14"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Mon Feb 09 19:31:42 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Feb 09 20:31:42 2026 +0100"
      },
      "message": "handle :protocol for extended CONNECT (#613)\n\nValidate extended CONNECT requirements and emit :protocol in HTTP/2 requests."
    },
    {
      "commit": "dbc40d01e0f12e9a67169036905b62518e5baf14",
      "tree": "7616544da193973e03e25dcf40ed7913b44ed7a1",
      "parents": [
        "dbe61988d086853603e5827d37f74e47944fd00a"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 09 11:00:02 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 09 11:06:08 2026 +0100"
      },
      "message": "Message class to use Java record naming convention\n"
    },
    {
      "commit": "dbe61988d086853603e5827d37f74e47944fd00a",
      "tree": "4916cdb24f3f29de7f02562b70eb9d80dfd5b3ee",
      "parents": [
        "5c5c1fb30e5681c4dd8a29fb93b9823e1f8fe8f9"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sat Feb 07 18:10:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 07 19:10:06 2026 +0100"
      },
      "message": "Expand coverage across reactor, protocol, HTTP/2, and testing framework. (#615)\n\n"
    },
    {
      "commit": "5c5c1fb30e5681c4dd8a29fb93b9823e1f8fe8f9",
      "tree": "de3edc165345f5d381e27c9e24383bc6928bcd7f",
      "parents": [
        "263cfdc2e52d2c49d4e9379c69dcac20f26b3813"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Sat Feb 07 17:57:06 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Feb 07 18:57:06 2026 +0100"
      },
      "message": "Simplify Assertions (#614)\n\n"
    },
    {
      "commit": "263cfdc2e52d2c49d4e9379c69dcac20f26b3813",
      "tree": "450a8d2de211284921f4ddce5df1201b54ffd03c",
      "parents": [
        "c1b43c3dee121a4952e424f9b89607cadd7a7a96"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Feb 06 15:53:02 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Feb 06 15:53:24 2026 -0800"
      },
      "message": "Ensure TCP-specific socket options are set\n\nThis change ensures that TCP-specific options are always set on\napplicable sockets, even when `socketChannel.getRemoteAddress()` returns\n`null`.\n"
    },
    {
      "commit": "c1b43c3dee121a4952e424f9b89607cadd7a7a96",
      "tree": "dae7a6265dc222552148a1631b21e59528e723c9",
      "parents": [
        "7bc29d361a0fe857ae7646cdac766ffcb00d0056"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Feb 05 18:52:52 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Feb 05 19:52:52 2026 +0100"
      },
      "message": "Replace Hamcrest assertions with JUnit assertions (#612)\n\nDrop Hamcrest deps and update test helpers"
    },
    {
      "commit": "7bc29d361a0fe857ae7646cdac766ffcb00d0056",
      "tree": "271ea4f30e9e1afdeed00bf29959bf53fa3b7b0e",
      "parents": [
        "f083b40eeb91c3b145edbee2f921f252e1d9b4bc"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Feb 02 18:38:39 2026 +0000"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 02 19:54:12 2026 +0100"
      },
      "message": "Bump org.assertj:assertj-core from 3.27.6 to 3.27.7\n\nBumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.27.6 to 3.27.7.\n- [Release notes](https://github.com/assertj/assertj/releases)\n- [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.27.6...assertj-build-3.27.7)\n\n---\nupdated-dependencies:\n- dependency-name: org.assertj:assertj-core\n  dependency-version: 3.27.7\n  dependency-type: direct:development\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "f083b40eeb91c3b145edbee2f921f252e1d9b4bc",
      "tree": "fd0827a56b0d067d41cba595a6e4faa8f9782d12",
      "parents": [
        "abe5512077beb7481fd3950703d597e77ca251dc"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Fri Jan 30 18:39:18 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 02 19:29:38 2026 +0100"
      },
      "message": "Jackson 2 bindings for HttpCore - initial contribution\n"
    },
    {
      "commit": "abe5512077beb7481fd3950703d597e77ca251dc",
      "tree": "05d94b38759d8cf01d6a4dc4b129c59f841cbcfc",
      "parents": [
        "1656006dce68b75572c8a8019f0f07a5bf19d84e"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Jan 30 18:17:42 2026 -0800"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Mon Feb 02 19:26:28 2026 +0100"
      },
      "message": "LaxConnPool: Prevent integer overflow in getTotalStats()\n"
    },
    {
      "commit": "1656006dce68b75572c8a8019f0f07a5bf19d84e",
      "tree": "b7673d7057754c99ded51ab2a48a71766f114308",
      "parents": [
        "a777eec54b7a23f7964e53d6d6ca706c5cf81085"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Wed Jan 28 18:52:33 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Thu Jan 29 09:04:55 2026 -0800"
      },
      "message": "LaxConnPool: Loop over expired connections\n\nThis change brings `LaxConnPool` into alignment with `StrictConnPool`,\nwhich loops over pool entries and discards expired ones as they are\ndiscovered, instead of returning them.\n"
    },
    {
      "commit": "a777eec54b7a23f7964e53d6d6ca706c5cf81085",
      "tree": "9e45f44b1fa2ebdb28dd31ad594a275efe99832b",
      "parents": [
        "31b6cf007fc64faaf6bd7312e09329869493bde8"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Wed Jan 28 18:47:41 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Thu Jan 29 09:03:54 2026 -0800"
      },
      "message": "StrictConnPool: Fix FIFO implementation\n"
    },
    {
      "commit": "31b6cf007fc64faaf6bd7312e09329869493bde8",
      "tree": "9a21a82c7756b0007dd196bbf5f07b18d8a0a34f",
      "parents": [
        "eabb469ec97f04cdc7684cefeb93a1ec87d1bfd1"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Wed Jan 28 11:01:46 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Thu Jan 29 09:03:44 2026 -0800"
      },
      "message": "Fix deprecation warnings\n"
    },
    {
      "commit": "eabb469ec97f04cdc7684cefeb93a1ec87d1bfd1",
      "tree": "db0a781bd81c931d69b301e28e327c8016a41346",
      "parents": [
        "30390498cf680d9053eb01215352db7094c126a4"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Fri Jan 23 15:16:00 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Mon Jan 26 13:01:12 2026 -0800"
      },
      "message": "SSLContexts: Respect system properties by default\n\nThe trust store system properties are always respected by default. The\nkey store system properties should also be respected by default for\nconsistency. For more information, see the discussion in:\n\nhttps://github.com/apache/httpcomponents-client/pull/773\n"
    },
    {
      "commit": "30390498cf680d9053eb01215352db7094c126a4",
      "tree": "d46d95bcb900be8b621a7c144b208d901b680e44",
      "parents": [
        "a83608a471900d2a883fa1b5af0c306587af1088"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Mon Jan 26 09:01:18 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jan 26 10:01:18 2026 +0100"
      },
      "message": "HTTP/2: per-stream idle timeout (#581)\n\n* HTTP/2: add per-stream idle and lifetime timeouts to core multiplexer\nExpose configuration via H2Config, throw H2StreamTimeoutException on expiry and keep the connection alive\nExtend test coverage and add an example client demonstrating timed-out and successful streams\n\n* add per-stream idle timeout and suppress CancelledKeyException on cancel\n;\n\nHandle cancelled SelectionKey in interestOps access"
    },
    {
      "commit": "a83608a471900d2a883fa1b5af0c306587af1088",
      "tree": "16a33cb259487aa4626997319adad94b437f59cc",
      "parents": [
        "ce8f8bcc863fa9908e1ce4c4da30fe67a56f6739"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Thu Jan 22 17:36:45 2026 +0100"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Thu Jan 22 11:24:50 2026 -0800"
      },
      "message": "Bug fix: Corrected exception propagation in protocol negotiators exception handling code\n"
    },
    {
      "commit": "ce8f8bcc863fa9908e1ce4c4da30fe67a56f6739",
      "tree": "140e2996f9a6ac1cca48053bd24733e44e20e657",
      "parents": [
        "6911f14c60654262059c5baf18730e6b65a811e5"
      ],
      "author": {
        "name": "Arturo Bernal",
        "email": "abernal@apache.org",
        "time": "Thu Jan 22 13:00:41 2026 +0000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Jan 22 14:00:41 2026 +0100"
      },
      "message": "Fix SOCKS handshake to fail on EOF. (#604)\n\nTreat ByteChannel.read() returning -1 as connection closed and abort the SOCKS\nprotocol state machine instead of spinning and leaving session requests pending."
    },
    {
      "commit": "6911f14c60654262059c5baf18730e6b65a811e5",
      "tree": "19ef0fe87f5ce001d8d638688c50a264baa77401",
      "parents": [
        "2fc5cdbe45ecc732e8b928e32a89a17caa060861"
      ],
      "author": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Tue Jan 20 18:40:54 2026 +0100"
      },
      "committer": {
        "name": "Oleg Kalnichevski",
        "email": "olegk@apache.org",
        "time": "Tue Jan 20 18:40:54 2026 +0100"
      },
      "message": "Bug fix: Handle CancelledKeyException thrown by abort method of the H2 stream\n"
    },
    {
      "commit": "2fc5cdbe45ecc732e8b928e32a89a17caa060861",
      "tree": "1fea47028b078e9da669339bed6a602e13754d4d",
      "parents": [
        "a4ad7dbc77a1e46cceef35f27181d862bbfb5b40"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jan 19 01:42:10 2026 +0000"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Sun Jan 18 18:57:17 2026 -0800"
      },
      "message": "Bump the all group across 1 directory with 5 updates\n\nBumps the all group with 5 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.junit:junit-bom](https://github.com/junit-team/junit-framework) | `5.14.1` | `5.14.2` |\n| org.apache.logging.log4j:log4j-slf4j-impl | `2.25.2` | `2.25.3` |\n| org.apache.logging.log4j:log4j-core | `2.25.2` | `2.25.3` |\n| [org.testcontainers:testcontainers](https://github.com/testcontainers/testcontainers-java) | `1.21.3` | `1.21.4` |\n| [org.testcontainers:junit-jupiter](https://github.com/testcontainers/testcontainers-java) | `1.21.3` | `1.21.4` |\n\n\n\nUpdates `org.junit:junit-bom` from 5.14.1 to 5.14.2\n- [Release notes](https://github.com/junit-team/junit-framework/releases)\n- [Commits](https://github.com/junit-team/junit-framework/compare/r5.14.1...r5.14.2)\n\nUpdates `org.apache.logging.log4j:log4j-slf4j-impl` from 2.25.2 to 2.25.3\n\nUpdates `org.apache.logging.log4j:log4j-core` from 2.25.2 to 2.25.3\n\nUpdates `org.apache.logging.log4j:log4j-core` from 2.25.2 to 2.25.3\n\nUpdates `org.testcontainers:testcontainers` from 1.21.3 to 1.21.4\n- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)\n- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.21.3...1.21.4)\n\nUpdates `org.testcontainers:junit-jupiter` from 1.21.3 to 1.21.4\n- [Release notes](https://github.com/testcontainers/testcontainers-java/releases)\n- [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md)\n- [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.21.3...1.21.4)\n\n---\nupdated-dependencies:\n- dependency-name: org.junit:junit-bom\n  dependency-version: 5.14.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-slf4j-impl\n  dependency-version: 2.25.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-core\n  dependency-version: 2.25.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.apache.logging.log4j:log4j-core\n  dependency-version: 2.25.3\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.testcontainers:testcontainers\n  dependency-version: 1.21.4\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: all\n- dependency-name: org.testcontainers:junit-jupiter\n  dependency-version: 1.21.4\n  dependency-type: direct:development\n  update-type: version-update:semver-patch\n  dependency-group: all\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "a4ad7dbc77a1e46cceef35f27181d862bbfb5b40",
      "tree": "f0b402c7b77559c8f6c070a2adc76a2f35468e89",
      "parents": [
        "911483aeccbd7649d548b36382ff96c88b6f2e95"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Sat Jan 17 12:02:41 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Sun Jan 18 13:00:41 2026 -0800"
      },
      "message": "Batch Dependabot updates on a monthly basis\n"
    },
    {
      "commit": "911483aeccbd7649d548b36382ff96c88b6f2e95",
      "tree": "0a9566feb0a636454b473a46ac96295c40ee1d71",
      "parents": [
        "e385f476cdcc555d283586ac96ccc31e2bdcb621"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Wed Jan 14 21:52:13 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Thu Jan 15 12:41:12 2026 -0800"
      },
      "message": "Move LoggingInitializationListener into httpcore5 tests jar\n\nThis allows the `LoggingInitializationListener` to be directly reused by\ndownstream projects, along with `junit-platform.properties`.\n"
    },
    {
      "commit": "e385f476cdcc555d283586ac96ccc31e2bdcb621",
      "tree": "39b6b3d33a3fa122af0acf1e4782c4f7c1cd7e4a",
      "parents": [
        "d0df4ea0f335d1d64bc5fc97bd7201ec82686e92"
      ],
      "author": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@apache.org",
        "time": "Wed Jan 14 21:08:56 2026 -0800"
      },
      "committer": {
        "name": "Ryan Schmitt",
        "email": "rschmitt@pobox.com",
        "time": "Thu Jan 15 12:40:39 2026 -0800"
      },
      "message": "ComplexCancellable: Fix race condition\n\nI discovered a race condition while investigating a sporadic test\nfailure in the client:\n\n```\n[ERROR]   HttpMinimalIntegrationTests$H2Tls\u003eAbstractHttpAsyncFundamentalsTest.testSequentialGetRequests:86 » Execution org.apache.hc.core5.http2.H2StreamResetException: Cancelled\n```\n\nI discovered that two threads are somehow racing when calling\n`ComplexCancellable.setDependency()`:\n\n```\nsetDependency dep\u003dorg.apache.hc.client5.http.impl.async.MinimalH2AsyncClient$$Lambda$655/251536271@633478cb ct\u003dForkJoinPool-1-worker-2\nsetDependency dep\u003d[id\u003d1, reserved\u003dfalse, removeClosed\u003dfalse, localClosed\u003dfalse, localReset\u003dfalse] ct\u003dhttpclient-dispatch-1\nsetDependency dep\u003dorg.apache.hc.client5.http.impl.async.MinimalH2AsyncClient$$Lambda$655/251536271@2e66671a ct\u003dForkJoinPool-1-worker-2\nsetDependency dep\u003d[id\u003d3, reserved\u003dfalse, removeClosed\u003dfalse, localClosed\u003dfalse, localReset\u003dfalse] ct\u003dhttpclient-dispatch-1\nsetDependency dep\u003dorg.apache.hc.client5.http.impl.async.MinimalH2AsyncClient$$Lambda$655/251536271@32f4e96 ct\u003dForkJoinPool-1-worker-2\nsetDependency dep\u003d[id\u003d5, reserved\u003dfalse, removeClosed\u003dfalse, localClosed\u003dfalse, localReset\u003dfalse] ct\u003dhttpclient-dispatch-1\n```\n\nThe implementation of `setDependency` was performing a single CAS and\ninterpreting failure to mean that the mark bit had been set -- in other\nwords, that another thread had called `cancel()`, rather than\n`setDependency()`.\n\nThis change corrects the implementation of `setDependency` by having it\nrun the CAS in a loop. On each update failure, it checks if the mark bit\nhas been set (nothing ever unsets it). If so, it calls\n`dependency.cancel()` and returns; else, it just tries again.\n"
    }
  ],
  "next": "d0df4ea0f335d1d64bc5fc97bd7201ec82686e92"
}
