Skip to content

Improve multi-byte access performance when UNALIGNED availability is unknown#16207

Merged
normanmaurer merged 15 commits intonetty:4.2from
Songdoeon:Poor_access_performance_UNALIGNED
Feb 19, 2026
Merged

Improve multi-byte access performance when UNALIGNED availability is unknown#16207
normanmaurer merged 15 commits intonetty:4.2from
Songdoeon:Poor_access_performance_UNALIGNED

Conversation

@Songdoeon
Copy link
Copy Markdown
Contributor

@Songdoeon Songdoeon commented Jan 31, 2026

Motivation:

When the JVM cannot report UNALIGNED support (e.g., on some ARM platforms or in restricted environments), Netty falls back to an architecture-based guess. If that guess yields UNALIGNED = false, multi-byte reads (getLong,
getInt, getShort) degrade to byte-by-byte access (8× getByte) even though the JIT could still optimize at runtime. There is currently no distinction between "the platform is known to not support unaligned access" and "we
simply don't know."

Modification:

Introduce UNALIGNED_AVAILABLE flag to distinguish whether UNALIGNED info came from the runtime (true) or from an architecture-based guess (false). When unaligned info is unavailable, use VarHandle instead of 8× getByte so
HotSpot can emit the optimal access strategy at runtime.

  • PlatformDependent0: add UNALIGNED_AVAILABLE flag; add io.netty.unalignedAccess=true|false|unavailable system property.
  • PlatformDependent: expose isUnalignedAvailable(); allow VarHandle initialization even when Unsafe is available.
  • UnsafeByteBufUtil: use VarHandle for multi-byte byte[] operations (getShort/getInt/getLong, setShort/setInt/setLong and their LE variants) when unaligned info is unavailable.
  • UnpooledUnsafeDirectByteBuf: use VarHandle for multi-byte ByteBuffer operations (_getShort/_getInt/_getLong, _setShort/_setInt/_setLong and their LE variants) when unaligned info is unavailable.
  • ByteBufUtil: enable SWAR indexOf/lastIndexOf via VarHandle when unaligned info is unavailable.

Three-tier access strategy:

Condition Strategy Path
UNALIGNED = true (known supported) Unsafe direct access single Unsafe.getLong()
UNALIGNED info unavailable (unknown) VarHandle JIT chooses optimal access
UNALIGNED = false (known unsupported) 8× getByte safe byte-wise assembly

Result:

Fixes #15781.

Benchmark (JDK 24.0.1, Apple Silicon, JMH 1.36):

Benchmark Summary

Benchmark false (8× getByte) unavailable (VarHandle) Improvement
getLongDirect 2.144 ns/op 1.764 ns/op 17.7% faster
getLongHeap 2.152 ns/op 1.119 ns/op 48.0% faster

Sorry for the delay in submitting this PR.
If anything looks incorrect or needs adjustment, I will update it promptly.
Thanks for the review.

@Songdoeon Songdoeon changed the title Use VarHandle for multi-byte access when UNALIGNED availability is un… Improve multi-byte access performance when UNALIGNED availability is unknown Jan 31, 2026
@franz1981
Copy link
Copy Markdown
Contributor

Rebase @Songdoeon please 🙏

@franz1981
Copy link
Copy Markdown
Contributor

This issue has a much wider scope as all multi byes ops are affected so please address these as well and don't tie it to just index of

@Songdoeon
Copy link
Copy Markdown
Contributor Author

Thanks

updated to cover all multi-byte get/set paths instead of only getLong/indexOf and adjusted the PR description accordingly.

@Override
protected void _setLong(int index, long value) {
if (!PlatformDependent.isUnaligned() &&
!PlatformDependent.isUnalignedAvailable() && PlatformDependent.hasVarHandle()) {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not combine these once in a static boolean to simplify ?

private static final USE_VAR_HANDLE = !PlatformDependent.isUnaligned() &&
                !PlatformDependent.isUnalignedAvailable() && PlatformDependent.hasVarHandle();
...
...
if (USE_VAR_HANDLE) {
    ....
}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, I extracted the repeated condition into a static final boolean USE_VAR_HANDLE
and applied it across all short/int/long get/set paths in this class.

@@ -31,6 +31,11 @@
*/
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let me try to understand what is going on here, please confirm:

  1. Netty detect presence of Unsafe - which will make it to allocate Unsafe-handled buffers
  2. BUT...unalignment is not detected properly, so it can use VarHandle for multi-bytes accesses

This looks a bit odd, but kind-of make sense.
And for SWAR, instead, I see that this benefit the non-Unsafe case too, or I'm misreading it?
Please confirm 🙏
And thanks for this!

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes that's correct.

Unsafe is used when unaligned support is known. When it cannot be reliably detected, we use VarHandle
for multi-byte accesses so the JVM can choose the optimal strategy instead of forcing the byte-by-byte path.

For SWAR, it’s also enabled in the unknown-unaligned + VarHandle case. In ByteBufUtil:

SWAR_UNALIGNED = UNALIGNED || (!UNALIGNED_AVAILABLE && PlatformDependent.hasVarHandle());

Copy link
Copy Markdown
Contributor

@franz1981 franz1981 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If android is happy, I think this is a great work. Thanks @Songdoeon 💕

Copy link
Copy Markdown
Member

@normanmaurer normanmaurer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Almost there

@normanmaurer normanmaurer added this to the 4.2.11.Final milestone Feb 9, 2026
@normanmaurer
Copy link
Copy Markdown
Member

@yawkat @chrisvest PTAL as well.

Copy link
Copy Markdown
Member

@chrisvest chrisvest left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see others have been confused about the logic of when to do what type of access, and I see that we have 3 separate static final fields controlling this in various places.

I wonder if its possible to collect more of that decision logic in PlatformDependent, so it's only in one place, and then also annotate it with a comment that explain how we decide on the different approaches.

@Songdoeon
Copy link
Copy Markdown
Contributor Author

Thanks for the review! I've simplified the logic based on your feedback:

  • Removed the isUnalignedAvailable() concept — VarHandle is now always used as a fallback when UNALIGNED is false.
  • Centralized decision logic into PlatformDependent with two methods: useVarHandleForMultiByteAccess() and canUnalignedAccess().
  • canUnalignedAccess() covers both native unaligned support and VarHandle-based access where the JVM handles alignment internally.

@chrisvest chrisvest added the needs-cherry-pick-5.0 This PR should be cherry-picked to 5.0 once merged. label Feb 16, 2026
@chrisvest
Copy link
Copy Markdown
Member

Looks much better with the recent changes 👍

@normanmaurer normanmaurer merged commit 0ee9723 into netty:4.2 Feb 19, 2026
19 checks passed
@normanmaurer
Copy link
Copy Markdown
Member

@Songdoeon thanks!

@netty-project-bot
Copy link
Copy Markdown
Contributor

Could not create automatic backport PR.
Got conflicts when cherry-picking onto 5.0.

chrisvest pushed a commit to chrisvest/netty that referenced this pull request Feb 20, 2026
…unknown (netty#16207)

Motivation:
When the JVM cannot report UNALIGNED support (e.g., on some ARM
platforms or in restricted environments), Netty falls back to an
architecture-based guess. If that guess yields UNALIGNED = false,
multi-byte reads (getLong,
getInt, getShort) degrade to byte-by-byte access (8× getByte) even
though the JIT could still optimize at runtime. There is currently no
distinction between "the platform is known to not support unaligned
access" and "we
simply don't know."
Modification:
Introduce UNALIGNED_AVAILABLE flag to distinguish whether UNALIGNED info
came from the runtime (true) or from an architecture-based guess
(false). When unaligned info is unavailable, use VarHandle instead of 8×
getByte so
HotSpot can emit the optimal access strategy at runtime.
- PlatformDependent0: add UNALIGNED_AVAILABLE flag; add
io.netty.unalignedAccess=true|false|unavailable system property.
- PlatformDependent: expose isUnalignedAvailable(); allow VarHandle
initialization even when Unsafe is available.
- UnsafeByteBufUtil: use `VarHandle` for multi-byte `byte[]` operations
(`getShort/getInt/getLong`, `setShort/setInt/setLong` and their LE
variants) when unaligned info is unavailable.
- UnpooledUnsafeDirectByteBuf: use `VarHandle` for multi-byte
`ByteBuffer` operations (`_getShort/_getInt/_getLong`,
`_setShort/_setInt/_setLong` and their LE variants) when unaligned info
is unavailable.
- ByteBufUtil: enable SWAR indexOf/lastIndexOf via VarHandle when
unaligned info is unavailable.
Three-tier access strategy:

| Condition | Strategy | Path |
|---------|---------|------|
| UNALIGNED = true (known supported) | Unsafe direct access | single
`Unsafe.getLong()` |
| UNALIGNED info unavailable (unknown) | VarHandle | JIT chooses optimal
access |
| UNALIGNED = false (known unsupported) | 8× getByte | safe byte-wise
assembly |

---
Result:
Fixes netty#15781.
Benchmark (JDK 24.0.1, Apple Silicon, JMH 1.36):
### Benchmark Summary

| Benchmark | false (8× getByte) | unavailable (VarHandle) | Improvement
|

|----------|--------------------|--------------------------|-------------|
| getLongDirect | 2.144 ns/op | 1.764 ns/op | 17.7% faster |
| getLongHeap | 2.152 ns/op | 1.119 ns/op | 48.0% faster |

Sorry for the delay in submitting this PR.
If anything looks incorrect or needs adjustment, I will update it
promptly.
Thanks for the review.

---------

Co-authored-by: Norman Maurer <norman_maurer@apple.com>
Co-authored-by: Chris Vest <christianvest_hansen@apple.com>

(cherry picked from commit 0ee9723)
@chrisvest
Copy link
Copy Markdown
Member

Forward port PR: #16319

normanmaurer pushed a commit that referenced this pull request Feb 21, 2026
…unknown (#16207) (#16319)

Motivation:
When the JVM cannot report UNALIGNED support (e.g., on some ARM
platforms or in restricted environments), Netty falls back to an
architecture-based guess. If that guess yields UNALIGNED = false,
multi-byte reads (getLong,
getInt, getShort) degrade to byte-by-byte access (8× getByte) even
though the JIT could still optimize at runtime. There is currently no
distinction between "the platform is known to not support unaligned
access" and "we
simply don't know."
Modification:
Introduce UNALIGNED_AVAILABLE flag to distinguish whether UNALIGNED info
came from the runtime (true) or from an architecture-based guess
(false). When unaligned info is unavailable, use VarHandle instead of 8×
getByte so
HotSpot can emit the optimal access strategy at runtime.
- PlatformDependent0: add UNALIGNED_AVAILABLE flag; add
io.netty.unalignedAccess=true|false|unavailable system property.
- PlatformDependent: expose isUnalignedAvailable(); allow VarHandle
initialization even when Unsafe is available.
- UnsafeByteBufUtil: use `VarHandle` for multi-byte `byte[]` operations
(`getShort/getInt/getLong`, `setShort/setInt/setLong` and their LE
variants) when unaligned info is unavailable.
- UnpooledUnsafeDirectByteBuf: use `VarHandle` for multi-byte
`ByteBuffer` operations (`_getShort/_getInt/_getLong`,
`_setShort/_setInt/_setLong` and their LE variants) when unaligned info
is unavailable.
- ByteBufUtil: enable SWAR indexOf/lastIndexOf via VarHandle when
unaligned info is unavailable.
Three-tier access strategy:

| Condition | Strategy | Path |
|---------|---------|------|
| UNALIGNED = true (known supported) | Unsafe direct access | single
`Unsafe.getLong()` |
| UNALIGNED info unavailable (unknown) | VarHandle | JIT chooses optimal
access |
| UNALIGNED = false (known unsupported) | 8× getByte | safe byte-wise
assembly |

---
Result:
Fixes #15781.
Benchmark (JDK 24.0.1, Apple Silicon, JMH 1.36):
### Benchmark Summary

| Benchmark | false (8× getByte) | unavailable (VarHandle) | Improvement
|


|----------|--------------------|--------------------------|-------------|
| getLongDirect | 2.144 ns/op | 1.764 ns/op | 17.7% faster | |
getLongHeap | 2.152 ns/op | 1.119 ns/op | 48.0% faster |

Sorry for the delay in submitting this PR.
If anything looks incorrect or needs adjustment, I will update it
promptly.
Thanks for the review.

---------

Co-authored-by: Norman Maurer <norman_maurer@apple.com>
Co-authored-by: Chris Vest <christianvest_hansen@apple.com>

(cherry picked from commit 0ee9723)

Co-authored-by: DoeonSong <96420547+songdoeon@users.noreply.github.com>
@Songdoeon Songdoeon deleted the Poor_access_performance_UNALIGNED branch February 24, 2026 04:36
mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Mar 29, 2026
…l [skip ci]

Bumps [io.netty:netty-all](https://github.com/netty/netty) from 4.2.10.Final to 4.2.12.Final.
Release notes

*Sourced from [io.netty:netty-all's releases](https://github.com/netty/netty/releases).*

> netty-4.2.12.Final
> ------------------
>
> What's Changed
> --------------
>
> * Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16550](https://redirect.github.com/netty/netty/pull/16550)
>
> **Full Changelog**: <netty/netty@netty-4.2.11.Final...netty-4.2.12.Final>
>
> netty-4.2.11.Final
> ------------------
>
> Security
> --------
>
> * CVE-2026-33871, [HTTP/2 CONTINUATION Frame Flood Denial of Service](GHSA-w9fj-cfpg-grvv)
> * CVE-2026-33870, [HTTP Request Smuggling via Chunked Extension Quoted-String Parsing](GHSA-pwqr-wmgm-9rr8)
>
> What's Changed
> --------------
>
> * Update to latest JDK 26 EA release by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16230](https://redirect.github.com/netty/netty/pull/16230)
> * HTTP3: Allow to support non-standard HTTP3 settings by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16171](https://redirect.github.com/netty/netty/pull/16171)
> * Fix Incorrect nanos-to-millis conversion in epoll\_wait EINTR retry loop by [`@​adwsingh`](https://github.com/adwsingh) in [netty/netty#16245](https://redirect.github.com/netty/netty/pull/16245)
> * Allocate one large segment and slice for each MsgHdrMemory by [`@​dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16234](https://redirect.github.com/netty/netty/pull/16234)
> * Make RefCntOpenSslContext.deallocate more robust by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16253](https://redirect.github.com/netty/netty/pull/16253)
> * Epoll: Fix excessive CPU usage when Channel is only registered but no… by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16250](https://redirect.github.com/netty/netty/pull/16250)
> * Update to gcc for arm 10.3-2021.07 by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16255](https://redirect.github.com/netty/netty/pull/16255)
> * Add acmeIdentifier extension support to pkitesting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16256](https://redirect.github.com/netty/netty/pull/16256)
> * Update JDK versions to latest patch releases by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16254](https://redirect.github.com/netty/netty/pull/16254)
> * Avoid allocation in HttpObjectEncoder.addEncodedLengthHex method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16241](https://redirect.github.com/netty/netty/pull/16241)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16269](https://redirect.github.com/netty/netty/pull/16269)
> * Revert "Automatic backporting workflow from 4.1 to 4.2" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16270](https://redirect.github.com/netty/netty/pull/16270)
> * HTTP2: Correctly account for padding when decompress by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16264](https://redirect.github.com/netty/netty/pull/16264)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16271](https://redirect.github.com/netty/netty/pull/16271)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16273](https://redirect.github.com/netty/netty/pull/16273)
> * Backport PRs must be created with personal access tokens by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16276](https://redirect.github.com/netty/netty/pull/16276)
> * Expose QuicSslContextBuilder::sni by [`@​ZeroErrors`](https://github.com/ZeroErrors) in [netty/netty#16178](https://redirect.github.com/netty/netty/pull/16178)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16275](https://redirect.github.com/netty/netty/pull/16275)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16283](https://redirect.github.com/netty/netty/pull/16283)
> * Remove the unpooled allocator from test permutations by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16282](https://redirect.github.com/netty/netty/pull/16282)
> * Some polishing of the porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16288](https://redirect.github.com/netty/netty/pull/16288)
> * Allow to set destination connection id when creating a client side QuicheChannel by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16286](https://redirect.github.com/netty/netty/pull/16286)
> * Update to latest JDK26 EA build by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16295](https://redirect.github.com/netty/netty/pull/16295)
> * Add javadoc to clarify responsibility of the user when generating the remote connection id by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16293](https://redirect.github.com/netty/netty/pull/16293)
> * Make the build run faster by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16290](https://redirect.github.com/netty/netty/pull/16290)
> * Fix IDE warnings in SslHandler by [`@​doom369`](https://github.com/doom369) in [netty/netty#16237](https://redirect.github.com/netty/netty/pull/16237)
> * Decrease Long allocations and map.put calls in ReferenceCountedOpenSllEngine in handshake() method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16242](https://redirect.github.com/netty/netty/pull/16242)
> * Support boringssl SSLCredential API by [`@​jmcrawford45`](https://github.com/jmcrawford45) in [netty/netty#15919](https://redirect.github.com/netty/netty/pull/15919)
> * Fix high-order bit aliasing in HttpUtil.validateToken by [`@​furkanvarol`](https://github.com/furkanvarol) in [netty/netty#16279](https://redirect.github.com/netty/netty/pull/16279)
> * Improve multi-byte access performance when UNALIGNED availability is unknown by [`@​Songdoeon`](https://github.com/Songdoeon) in [netty/netty#16207](https://redirect.github.com/netty/netty/pull/16207)
> * Avoid unnecessary SSL.getVersion() call and string allocation in ReferenceCountedOpenSslEngine by [`@​doom369`](https://github.com/doom369) in [netty/netty#16278](https://redirect.github.com/netty/netty/pull/16278)
> * Support more branch freedom for auto-porting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16300](https://redirect.github.com/netty/netty/pull/16300)
> * fix: the precedence of + is higher than >> by [`@​cuiweixie`](https://github.com/cuiweixie) in [netty/netty#16312](https://redirect.github.com/netty/netty/pull/16312)
> * AdaptiveByteBufAllocator: make sure byteBuf.capacity() not greater than byteBuf.maxCapacity() by [`@​laosijikaichele`](https://github.com/laosijikaichele) in [netty/netty#16309](https://redirect.github.com/netty/netty/pull/16309)
> * Fix flaky PooledByteBufAllocatorTest by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16313](https://redirect.github.com/netty/netty/pull/16313)
> * Fix pooled arena accounting tests by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16321](https://redirect.github.com/netty/netty/pull/16321)

... (truncated)


Commits

* [`67ce541`](netty/netty@67ce541) [maven-release-plugin] prepare release netty-4.2.12.Final
* [`7074624`](netty/netty@7074624) Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`c3b0a43`](netty/netty@c3b0a43) [maven-release-plugin] prepare for next development iteration
* [`c94a818`](netty/netty@c94a818) [maven-release-plugin] prepare release netty-4.2.11.Final
* [`3b76df1`](netty/netty@3b76df1) Merge commit from fork
* [`aae944a`](netty/netty@aae944a) Auto-port 4.2: Limit the number of Continuation frames per HTTP2 Headers ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`6001499`](netty/netty@6001499) Eliminate redundant bounds checks in CompositeByteBuf accessors ([#16525](https://redirect.github.com/netty/netty/issues/16525))
* [`a7fbb6f`](netty/netty@a7fbb6f) JdkZlibDecoder: accumulate decompressed output before firing channelRead ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`7937553`](netty/netty@7937553) Enforce io.netty.maxDirectMemory accounting on all Java versions ([#16489](https://redirect.github.com/netty/netty/issues/16489))
* [`893ea2e`](netty/netty@893ea2e) Allocate less in QueryStringDecoder.addParam for typical use case ([#16527](https://redirect.github.com/netty/netty/issues/16527))
* Additional commits viewable in [compare view](netty/netty@netty-4.2.10.Final...netty-4.2.12.Final)
  
[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility\_score?dependency-name=io.netty:netty-all&package-manager=maven&previous-version=4.2.10.Final&new-version=4.2.12.Final)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
mergify bot added a commit to ArcadeData/arcadedb that referenced this pull request Mar 29, 2026
…ip ci]

Bumps `netty.version` from 4.2.10.Final to 4.2.12.Final.
Updates `io.netty:netty-transport` from 4.2.10.Final to 4.2.12.Final
Release notes

*Sourced from [io.netty:netty-transport's releases](https://github.com/netty/netty/releases).*

> netty-4.2.12.Final
> ------------------
>
> What's Changed
> --------------
>
> * Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16550](https://redirect.github.com/netty/netty/pull/16550)
>
> **Full Changelog**: <netty/netty@netty-4.2.11.Final...netty-4.2.12.Final>
>
> netty-4.2.11.Final
> ------------------
>
> Security
> --------
>
> * CVE-2026-33871, [HTTP/2 CONTINUATION Frame Flood Denial of Service](GHSA-w9fj-cfpg-grvv)
> * CVE-2026-33870, [HTTP Request Smuggling via Chunked Extension Quoted-String Parsing](GHSA-pwqr-wmgm-9rr8)
>
> What's Changed
> --------------
>
> * Update to latest JDK 26 EA release by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16230](https://redirect.github.com/netty/netty/pull/16230)
> * HTTP3: Allow to support non-standard HTTP3 settings by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16171](https://redirect.github.com/netty/netty/pull/16171)
> * Fix Incorrect nanos-to-millis conversion in epoll\_wait EINTR retry loop by [`@​adwsingh`](https://github.com/adwsingh) in [netty/netty#16245](https://redirect.github.com/netty/netty/pull/16245)
> * Allocate one large segment and slice for each MsgHdrMemory by [`@​dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16234](https://redirect.github.com/netty/netty/pull/16234)
> * Make RefCntOpenSslContext.deallocate more robust by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16253](https://redirect.github.com/netty/netty/pull/16253)
> * Epoll: Fix excessive CPU usage when Channel is only registered but no… by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16250](https://redirect.github.com/netty/netty/pull/16250)
> * Update to gcc for arm 10.3-2021.07 by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16255](https://redirect.github.com/netty/netty/pull/16255)
> * Add acmeIdentifier extension support to pkitesting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16256](https://redirect.github.com/netty/netty/pull/16256)
> * Update JDK versions to latest patch releases by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16254](https://redirect.github.com/netty/netty/pull/16254)
> * Avoid allocation in HttpObjectEncoder.addEncodedLengthHex method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16241](https://redirect.github.com/netty/netty/pull/16241)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16269](https://redirect.github.com/netty/netty/pull/16269)
> * Revert "Automatic backporting workflow from 4.1 to 4.2" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16270](https://redirect.github.com/netty/netty/pull/16270)
> * HTTP2: Correctly account for padding when decompress by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16264](https://redirect.github.com/netty/netty/pull/16264)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16271](https://redirect.github.com/netty/netty/pull/16271)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16273](https://redirect.github.com/netty/netty/pull/16273)
> * Backport PRs must be created with personal access tokens by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16276](https://redirect.github.com/netty/netty/pull/16276)
> * Expose QuicSslContextBuilder::sni by [`@​ZeroErrors`](https://github.com/ZeroErrors) in [netty/netty#16178](https://redirect.github.com/netty/netty/pull/16178)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16275](https://redirect.github.com/netty/netty/pull/16275)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16283](https://redirect.github.com/netty/netty/pull/16283)
> * Remove the unpooled allocator from test permutations by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16282](https://redirect.github.com/netty/netty/pull/16282)
> * Some polishing of the porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16288](https://redirect.github.com/netty/netty/pull/16288)
> * Allow to set destination connection id when creating a client side QuicheChannel by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16286](https://redirect.github.com/netty/netty/pull/16286)
> * Update to latest JDK26 EA build by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16295](https://redirect.github.com/netty/netty/pull/16295)
> * Add javadoc to clarify responsibility of the user when generating the remote connection id by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16293](https://redirect.github.com/netty/netty/pull/16293)
> * Make the build run faster by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16290](https://redirect.github.com/netty/netty/pull/16290)
> * Fix IDE warnings in SslHandler by [`@​doom369`](https://github.com/doom369) in [netty/netty#16237](https://redirect.github.com/netty/netty/pull/16237)
> * Decrease Long allocations and map.put calls in ReferenceCountedOpenSllEngine in handshake() method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16242](https://redirect.github.com/netty/netty/pull/16242)
> * Support boringssl SSLCredential API by [`@​jmcrawford45`](https://github.com/jmcrawford45) in [netty/netty#15919](https://redirect.github.com/netty/netty/pull/15919)
> * Fix high-order bit aliasing in HttpUtil.validateToken by [`@​furkanvarol`](https://github.com/furkanvarol) in [netty/netty#16279](https://redirect.github.com/netty/netty/pull/16279)
> * Improve multi-byte access performance when UNALIGNED availability is unknown by [`@​Songdoeon`](https://github.com/Songdoeon) in [netty/netty#16207](https://redirect.github.com/netty/netty/pull/16207)
> * Avoid unnecessary SSL.getVersion() call and string allocation in ReferenceCountedOpenSslEngine by [`@​doom369`](https://github.com/doom369) in [netty/netty#16278](https://redirect.github.com/netty/netty/pull/16278)
> * Support more branch freedom for auto-porting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16300](https://redirect.github.com/netty/netty/pull/16300)
> * fix: the precedence of + is higher than >> by [`@​cuiweixie`](https://github.com/cuiweixie) in [netty/netty#16312](https://redirect.github.com/netty/netty/pull/16312)
> * AdaptiveByteBufAllocator: make sure byteBuf.capacity() not greater than byteBuf.maxCapacity() by [`@​laosijikaichele`](https://github.com/laosijikaichele) in [netty/netty#16309](https://redirect.github.com/netty/netty/pull/16309)
> * Fix flaky PooledByteBufAllocatorTest by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16313](https://redirect.github.com/netty/netty/pull/16313)
> * Fix pooled arena accounting tests by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16321](https://redirect.github.com/netty/netty/pull/16321)

... (truncated)


Commits

* [`67ce541`](netty/netty@67ce541) [maven-release-plugin] prepare release netty-4.2.12.Final
* [`7074624`](netty/netty@7074624) Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`c3b0a43`](netty/netty@c3b0a43) [maven-release-plugin] prepare for next development iteration
* [`c94a818`](netty/netty@c94a818) [maven-release-plugin] prepare release netty-4.2.11.Final
* [`3b76df1`](netty/netty@3b76df1) Merge commit from fork
* [`aae944a`](netty/netty@aae944a) Auto-port 4.2: Limit the number of Continuation frames per HTTP2 Headers ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`6001499`](netty/netty@6001499) Eliminate redundant bounds checks in CompositeByteBuf accessors ([#16525](https://redirect.github.com/netty/netty/issues/16525))
* [`a7fbb6f`](netty/netty@a7fbb6f) JdkZlibDecoder: accumulate decompressed output before firing channelRead ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`7937553`](netty/netty@7937553) Enforce io.netty.maxDirectMemory accounting on all Java versions ([#16489](https://redirect.github.com/netty/netty/issues/16489))
* [`893ea2e`](netty/netty@893ea2e) Allocate less in QueryStringDecoder.addParam for typical use case ([#16527](https://redirect.github.com/netty/netty/issues/16527))
* Additional commits viewable in [compare view](netty/netty@netty-4.2.10.Final...netty-4.2.12.Final)
  
Updates `io.netty:netty-codec` from 4.2.10.Final to 4.2.12.Final
Release notes

*Sourced from [io.netty:netty-codec's releases](https://github.com/netty/netty/releases).*

> netty-4.2.12.Final
> ------------------
>
> What's Changed
> --------------
>
> * Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16550](https://redirect.github.com/netty/netty/pull/16550)
>
> **Full Changelog**: <netty/netty@netty-4.2.11.Final...netty-4.2.12.Final>
>
> netty-4.2.11.Final
> ------------------
>
> Security
> --------
>
> * CVE-2026-33871, [HTTP/2 CONTINUATION Frame Flood Denial of Service](GHSA-w9fj-cfpg-grvv)
> * CVE-2026-33870, [HTTP Request Smuggling via Chunked Extension Quoted-String Parsing](GHSA-pwqr-wmgm-9rr8)
>
> What's Changed
> --------------
>
> * Update to latest JDK 26 EA release by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16230](https://redirect.github.com/netty/netty/pull/16230)
> * HTTP3: Allow to support non-standard HTTP3 settings by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16171](https://redirect.github.com/netty/netty/pull/16171)
> * Fix Incorrect nanos-to-millis conversion in epoll\_wait EINTR retry loop by [`@​adwsingh`](https://github.com/adwsingh) in [netty/netty#16245](https://redirect.github.com/netty/netty/pull/16245)
> * Allocate one large segment and slice for each MsgHdrMemory by [`@​dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16234](https://redirect.github.com/netty/netty/pull/16234)
> * Make RefCntOpenSslContext.deallocate more robust by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16253](https://redirect.github.com/netty/netty/pull/16253)
> * Epoll: Fix excessive CPU usage when Channel is only registered but no… by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16250](https://redirect.github.com/netty/netty/pull/16250)
> * Update to gcc for arm 10.3-2021.07 by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16255](https://redirect.github.com/netty/netty/pull/16255)
> * Add acmeIdentifier extension support to pkitesting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16256](https://redirect.github.com/netty/netty/pull/16256)
> * Update JDK versions to latest patch releases by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16254](https://redirect.github.com/netty/netty/pull/16254)
> * Avoid allocation in HttpObjectEncoder.addEncodedLengthHex method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16241](https://redirect.github.com/netty/netty/pull/16241)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16269](https://redirect.github.com/netty/netty/pull/16269)
> * Revert "Automatic backporting workflow from 4.1 to 4.2" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16270](https://redirect.github.com/netty/netty/pull/16270)
> * HTTP2: Correctly account for padding when decompress by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16264](https://redirect.github.com/netty/netty/pull/16264)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16271](https://redirect.github.com/netty/netty/pull/16271)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16273](https://redirect.github.com/netty/netty/pull/16273)
> * Backport PRs must be created with personal access tokens by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16276](https://redirect.github.com/netty/netty/pull/16276)
> * Expose QuicSslContextBuilder::sni by [`@​ZeroErrors`](https://github.com/ZeroErrors) in [netty/netty#16178](https://redirect.github.com/netty/netty/pull/16178)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16275](https://redirect.github.com/netty/netty/pull/16275)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16283](https://redirect.github.com/netty/netty/pull/16283)
> * Remove the unpooled allocator from test permutations by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16282](https://redirect.github.com/netty/netty/pull/16282)
> * Some polishing of the porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16288](https://redirect.github.com/netty/netty/pull/16288)
> * Allow to set destination connection id when creating a client side QuicheChannel by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16286](https://redirect.github.com/netty/netty/pull/16286)
> * Update to latest JDK26 EA build by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16295](https://redirect.github.com/netty/netty/pull/16295)
> * Add javadoc to clarify responsibility of the user when generating the remote connection id by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16293](https://redirect.github.com/netty/netty/pull/16293)
> * Make the build run faster by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16290](https://redirect.github.com/netty/netty/pull/16290)
> * Fix IDE warnings in SslHandler by [`@​doom369`](https://github.com/doom369) in [netty/netty#16237](https://redirect.github.com/netty/netty/pull/16237)
> * Decrease Long allocations and map.put calls in ReferenceCountedOpenSllEngine in handshake() method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16242](https://redirect.github.com/netty/netty/pull/16242)
> * Support boringssl SSLCredential API by [`@​jmcrawford45`](https://github.com/jmcrawford45) in [netty/netty#15919](https://redirect.github.com/netty/netty/pull/15919)
> * Fix high-order bit aliasing in HttpUtil.validateToken by [`@​furkanvarol`](https://github.com/furkanvarol) in [netty/netty#16279](https://redirect.github.com/netty/netty/pull/16279)
> * Improve multi-byte access performance when UNALIGNED availability is unknown by [`@​Songdoeon`](https://github.com/Songdoeon) in [netty/netty#16207](https://redirect.github.com/netty/netty/pull/16207)
> * Avoid unnecessary SSL.getVersion() call and string allocation in ReferenceCountedOpenSslEngine by [`@​doom369`](https://github.com/doom369) in [netty/netty#16278](https://redirect.github.com/netty/netty/pull/16278)
> * Support more branch freedom for auto-porting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16300](https://redirect.github.com/netty/netty/pull/16300)
> * fix: the precedence of + is higher than >> by [`@​cuiweixie`](https://github.com/cuiweixie) in [netty/netty#16312](https://redirect.github.com/netty/netty/pull/16312)
> * AdaptiveByteBufAllocator: make sure byteBuf.capacity() not greater than byteBuf.maxCapacity() by [`@​laosijikaichele`](https://github.com/laosijikaichele) in [netty/netty#16309](https://redirect.github.com/netty/netty/pull/16309)
> * Fix flaky PooledByteBufAllocatorTest by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16313](https://redirect.github.com/netty/netty/pull/16313)
> * Fix pooled arena accounting tests by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16321](https://redirect.github.com/netty/netty/pull/16321)

... (truncated)


Commits

* [`67ce541`](netty/netty@67ce541) [maven-release-plugin] prepare release netty-4.2.12.Final
* [`7074624`](netty/netty@7074624) Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`c3b0a43`](netty/netty@c3b0a43) [maven-release-plugin] prepare for next development iteration
* [`c94a818`](netty/netty@c94a818) [maven-release-plugin] prepare release netty-4.2.11.Final
* [`3b76df1`](netty/netty@3b76df1) Merge commit from fork
* [`aae944a`](netty/netty@aae944a) Auto-port 4.2: Limit the number of Continuation frames per HTTP2 Headers ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`6001499`](netty/netty@6001499) Eliminate redundant bounds checks in CompositeByteBuf accessors ([#16525](https://redirect.github.com/netty/netty/issues/16525))
* [`a7fbb6f`](netty/netty@a7fbb6f) JdkZlibDecoder: accumulate decompressed output before firing channelRead ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`7937553`](netty/netty@7937553) Enforce io.netty.maxDirectMemory accounting on all Java versions ([#16489](https://redirect.github.com/netty/netty/issues/16489))
* [`893ea2e`](netty/netty@893ea2e) Allocate less in QueryStringDecoder.addParam for typical use case ([#16527](https://redirect.github.com/netty/netty/issues/16527))
* Additional commits viewable in [compare view](netty/netty@netty-4.2.10.Final...netty-4.2.12.Final)
  
Updates `io.netty:netty-handler` from 4.2.10.Final to 4.2.12.Final
Release notes

*Sourced from [io.netty:netty-handler's releases](https://github.com/netty/netty/releases).*

> netty-4.2.12.Final
> ------------------
>
> What's Changed
> --------------
>
> * Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16550](https://redirect.github.com/netty/netty/pull/16550)
>
> **Full Changelog**: <netty/netty@netty-4.2.11.Final...netty-4.2.12.Final>
>
> netty-4.2.11.Final
> ------------------
>
> Security
> --------
>
> * CVE-2026-33871, [HTTP/2 CONTINUATION Frame Flood Denial of Service](GHSA-w9fj-cfpg-grvv)
> * CVE-2026-33870, [HTTP Request Smuggling via Chunked Extension Quoted-String Parsing](GHSA-pwqr-wmgm-9rr8)
>
> What's Changed
> --------------
>
> * Update to latest JDK 26 EA release by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16230](https://redirect.github.com/netty/netty/pull/16230)
> * HTTP3: Allow to support non-standard HTTP3 settings by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16171](https://redirect.github.com/netty/netty/pull/16171)
> * Fix Incorrect nanos-to-millis conversion in epoll\_wait EINTR retry loop by [`@​adwsingh`](https://github.com/adwsingh) in [netty/netty#16245](https://redirect.github.com/netty/netty/pull/16245)
> * Allocate one large segment and slice for each MsgHdrMemory by [`@​dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#16234](https://redirect.github.com/netty/netty/pull/16234)
> * Make RefCntOpenSslContext.deallocate more robust by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16253](https://redirect.github.com/netty/netty/pull/16253)
> * Epoll: Fix excessive CPU usage when Channel is only registered but no… by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16250](https://redirect.github.com/netty/netty/pull/16250)
> * Update to gcc for arm 10.3-2021.07 by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16255](https://redirect.github.com/netty/netty/pull/16255)
> * Add acmeIdentifier extension support to pkitesting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16256](https://redirect.github.com/netty/netty/pull/16256)
> * Update JDK versions to latest patch releases by [`@​m1ngyuan`](https://github.com/m1ngyuan) in [netty/netty#16254](https://redirect.github.com/netty/netty/pull/16254)
> * Avoid allocation in HttpObjectEncoder.addEncodedLengthHex method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16241](https://redirect.github.com/netty/netty/pull/16241)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16269](https://redirect.github.com/netty/netty/pull/16269)
> * Revert "Automatic backporting workflow from 4.1 to 4.2" by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16270](https://redirect.github.com/netty/netty/pull/16270)
> * HTTP2: Correctly account for padding when decompress by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16264](https://redirect.github.com/netty/netty/pull/16264)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16271](https://redirect.github.com/netty/netty/pull/16271)
> * Automatic backporting workflow from 4.1 to 4.2 by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16273](https://redirect.github.com/netty/netty/pull/16273)
> * Backport PRs must be created with personal access tokens by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16276](https://redirect.github.com/netty/netty/pull/16276)
> * Expose QuicSslContextBuilder::sni by [`@​ZeroErrors`](https://github.com/ZeroErrors) in [netty/netty#16178](https://redirect.github.com/netty/netty/pull/16178)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16275](https://redirect.github.com/netty/netty/pull/16275)
> * Add more porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16283](https://redirect.github.com/netty/netty/pull/16283)
> * Remove the unpooled allocator from test permutations by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16282](https://redirect.github.com/netty/netty/pull/16282)
> * Some polishing of the porting workflows by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16288](https://redirect.github.com/netty/netty/pull/16288)
> * Allow to set destination connection id when creating a client side QuicheChannel by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16286](https://redirect.github.com/netty/netty/pull/16286)
> * Update to latest JDK26 EA build by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16295](https://redirect.github.com/netty/netty/pull/16295)
> * Add javadoc to clarify responsibility of the user when generating the remote connection id by [`@​normanmaurer`](https://github.com/normanmaurer) in [netty/netty#16293](https://redirect.github.com/netty/netty/pull/16293)
> * Make the build run faster by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16290](https://redirect.github.com/netty/netty/pull/16290)
> * Fix IDE warnings in SslHandler by [`@​doom369`](https://github.com/doom369) in [netty/netty#16237](https://redirect.github.com/netty/netty/pull/16237)
> * Decrease Long allocations and map.put calls in ReferenceCountedOpenSllEngine in handshake() method by [`@​doom369`](https://github.com/doom369) in [netty/netty#16242](https://redirect.github.com/netty/netty/pull/16242)
> * Support boringssl SSLCredential API by [`@​jmcrawford45`](https://github.com/jmcrawford45) in [netty/netty#15919](https://redirect.github.com/netty/netty/pull/15919)
> * Fix high-order bit aliasing in HttpUtil.validateToken by [`@​furkanvarol`](https://github.com/furkanvarol) in [netty/netty#16279](https://redirect.github.com/netty/netty/pull/16279)
> * Improve multi-byte access performance when UNALIGNED availability is unknown by [`@​Songdoeon`](https://github.com/Songdoeon) in [netty/netty#16207](https://redirect.github.com/netty/netty/pull/16207)
> * Avoid unnecessary SSL.getVersion() call and string allocation in ReferenceCountedOpenSslEngine by [`@​doom369`](https://github.com/doom369) in [netty/netty#16278](https://redirect.github.com/netty/netty/pull/16278)
> * Support more branch freedom for auto-porting by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16300](https://redirect.github.com/netty/netty/pull/16300)
> * fix: the precedence of + is higher than >> by [`@​cuiweixie`](https://github.com/cuiweixie) in [netty/netty#16312](https://redirect.github.com/netty/netty/pull/16312)
> * AdaptiveByteBufAllocator: make sure byteBuf.capacity() not greater than byteBuf.maxCapacity() by [`@​laosijikaichele`](https://github.com/laosijikaichele) in [netty/netty#16309](https://redirect.github.com/netty/netty/pull/16309)
> * Fix flaky PooledByteBufAllocatorTest by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16313](https://redirect.github.com/netty/netty/pull/16313)
> * Fix pooled arena accounting tests by [`@​chrisvest`](https://github.com/chrisvest) in [netty/netty#16321](https://redirect.github.com/netty/netty/pull/16321)

... (truncated)


Commits

* [`67ce541`](netty/netty@67ce541) [maven-release-plugin] prepare release netty-4.2.12.Final
* [`7074624`](netty/netty@7074624) Revert "Eliminate redundant bounds checks in CompositeByteBuf accessors" ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`c3b0a43`](netty/netty@c3b0a43) [maven-release-plugin] prepare for next development iteration
* [`c94a818`](netty/netty@c94a818) [maven-release-plugin] prepare release netty-4.2.11.Final
* [`3b76df1`](netty/netty@3b76df1) Merge commit from fork
* [`aae944a`](netty/netty@aae944a) Auto-port 4.2: Limit the number of Continuation frames per HTTP2 Headers ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`6001499`](netty/netty@6001499) Eliminate redundant bounds checks in CompositeByteBuf accessors ([#16525](https://redirect.github.com/netty/netty/issues/16525))
* [`a7fbb6f`](netty/netty@a7fbb6f) JdkZlibDecoder: accumulate decompressed output before firing channelRead ([#16](https://redirect.github.com/netty/netty/issues/16)...
* [`7937553`](netty/netty@7937553) Enforce io.netty.maxDirectMemory accounting on all Java versions ([#16489](https://redirect.github.com/netty/netty/issues/16489))
* [`893ea2e`](netty/netty@893ea2e) Allocate less in QueryStringDecoder.addParam for typical use case ([#16527](https://redirect.github.com/netty/netty/issues/16527))
* Additional commits viewable in [compare view](netty/netty@netty-4.2.10.Final...netty-4.2.12.Final)
  
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.
[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)
---
Dependabot commands and options
  
You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot show  ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-cherry-pick-5.0 This PR should be cherry-picked to 5.0 once merged.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Poor access performance on UNALIGNED = false platforms

5 participants