| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Motivation: WebSocketServerHandshaker wrote the 101 Switching Protocols response via Channel.writeAndFlush(), so the write started at the tail of the pipeline and traversed every ChannelOutboundHandler placed after WebSocketServerProtocolHandler. Handlers placed there operate on WebSocket frames and do not expect the raw HTTP upgrade response; in netty#17141 a handler that queues outbound messages until HandshakeComplete captured the response itself, deadlocking the handshake until it timed out. Modification: - Add handshake(ChannelHandlerContext, ...) overloads to WebSocketServerHandshaker, following the existing close(ChannelHandlerContext, ...) overloads in the same class, and route both variants through a shared handshake0(ChannelOutboundInvoker, Channel, ...). - Let WebSocketServerProtocolHandshakeHandler pass its ctx instead of the Channel so the response is written from the handshake handler's position. - Update the benchmarkserver example to use the new overload. - Add a regression test asserting that handlers behind the protocol handler do not see the handshake response, for both full and non-full upgrade requests, and adjust existing tests that relied on the tail write. Result: Fixes netty#17141. Handlers placed after WebSocketServerProtocolHandler no longer see the raw 101 response. The Channel overloads keep their existing behavior; binary compatibility is preserved. Callers passing a null literal need a cast when recompiling.
|
@el-psy-kongroo-d did you sign our icla yet ? https://netty.io/s/icla |
Sorry, something went wrong.
|
@normanmaurer I wasn't aware of the ICLA — just signed it now (GitHub user name: el-psy-kongroo-d). Thanks for the pointer! |
Sorry, something went wrong.
Co-authored-by: Norman Maurer <norman_maurer@apple.com>
✅ All tests passed ✅🏷️ Commit: 6b5de50 Learn more about TestLens at testlens.app. |
Sorry, something went wrong.
|
Could not create auto-port PR. |
Sorry, something went wrong.
|
Could not create auto-port PR. |
Sorry, something went wrong.
…#17192) (#17200) `WebSocketServerHandshaker` writes the 101 Switching Protocols response via `Channel.writeAndFlush()`. The write starts at the tail of the pipeline, so every `ChannelOutboundHandler` placed after `WebSocketServerProtocolHandler` sees the raw HTTP upgrade response, even though handlers there operate on WebSocket frames. In #17141 a handler that queues outbound messages until `HandshakeComplete` captured the response itself, so the handshake could never complete. `WebSocketServerHandshaker` already provides `ChannelHandlerContext` overloads for `close()` for the same reason; this change applies the same pattern to the handshake response. - Add `handshake(ChannelHandlerContext, ...)` overloads to `WebSocketServerHandshaker`, following the existing `close(ChannelHandlerContext, ...)` overloads in the same class, and route both variants through a shared `handshake0(ChannelOutboundInvoker, Channel, ...)`. - `WebSocketServerProtocolHandshakeHandler` now passes its ctx, so the response is written from the handshake handler's former position. - Update the benchmarkserver example to use the new overload. - Tests: a regression test asserts a handler behind the protocol handler observes no write during the handshake, for both full and non-full upgrade requests. Existing tests that captured the response behind the protocol handler now read it via `readOutbound()`. Four `handshake(null, ...)` calls needed a `(Channel)` cast to stay unambiguous. Notes: - With the documented pipeline ordering (extension/compression handler before the protocol handler, as in `WebSocketServerInitializer`) nothing changes: the write still traverses `WebSocketServerExtensionHandler` and the HTTP encoder. Only handlers behind the protocol handler stop seeing the 101, which is the bug being fixed. - The tail-write behavior of the `Channel` overloads is unchanged and still covered by `WebSocketServerHandshaker00/08/13Test` and `WebSocketServerHandshakerTest`. Fixes #17141. --------- Co-authored-by: el-psy-kongroo-d <307969302+el-psy-kongroo-d@users.noreply.github.com> Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: el-psy-kongroo-d <el.psy.kongroo.d@gmail.com> Co-authored-by: el-psy-kongroo-d <307969302+el-psy-kongroo-d@users.noreply.github.com>
…#17192) (#17201) `WebSocketServerHandshaker` writes the 101 Switching Protocols response via `Channel.writeAndFlush()`. The write starts at the tail of the pipeline, so every `ChannelOutboundHandler` placed after `WebSocketServerProtocolHandler` sees the raw HTTP upgrade response, even though handlers there operate on WebSocket frames. In #17141 a handler that queues outbound messages until `HandshakeComplete` captured the response itself, so the handshake could never complete. `WebSocketServerHandshaker` already provides `ChannelHandlerContext` overloads for `close()` for the same reason; this change applies the same pattern to the handshake response. - Add `handshake(ChannelHandlerContext, ...)` overloads to `WebSocketServerHandshaker`, following the existing `close(ChannelHandlerContext, ...)` overloads in the same class, and route both variants through a shared `handshake0(ChannelOutboundInvoker, Channel, ...)`. - `WebSocketServerProtocolHandshakeHandler` now passes its ctx, so the response is written from the handshake handler's former position. - Update the benchmarkserver example to use the new overload. - Tests: a regression test asserts a handler behind the protocol handler observes no write during the handshake, for both full and non-full upgrade requests. Existing tests that captured the response behind the protocol handler now read it via `readOutbound()`. Four `handshake(null, ...)` calls needed a `(Channel)` cast to stay unambiguous. Notes: - With the documented pipeline ordering (extension/compression handler before the protocol handler, as in `WebSocketServerInitializer`) nothing changes: the write still traverses `WebSocketServerExtensionHandler` and the HTTP encoder. Only handlers behind the protocol handler stop seeing the 101, which is the bug being fixed. - The tail-write behavior of the `Channel` overloads is unchanged and still covered by `WebSocketServerHandshaker00/08/13Test` and `WebSocketServerHandshakerTest`. Fixes #17141. --------- Co-authored-by: el-psy-kongroo-d <307969302+el-psy-kongroo-d@users.noreply.github.com> Co-authored-by: Norman Maurer <norman_maurer@apple.com> Co-authored-by: el-psy-kongroo-d <el.psy.kongroo.d@gmail.com> Co-authored-by: el-psy-kongroo-d <307969302+el-psy-kongroo-d@users.noreply.github.com>
…l [skip ci] Bumps [io.netty:netty-all](https://github.com/netty/netty) from 4.2.16.Final to 4.2.17.Final. Release notes *Sourced from [io.netty:netty-all's releases](https://github.com/netty/netty/releases).* > netty-4.2.17.Final > ------------------ > > What's Changed > -------------- > > * AsciiString.cached(String) should sanitize the provided String ([#13749](https://redirect.github.com/netty/netty/issues/13749)) by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * Fix deploy workflow by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17071](https://redirect.github.com/netty/netty/pull/17071) > * Fix AsciiString.cached(String) performance regression by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17074](https://redirect.github.com/netty/netty/pull/17074) > * SslHandler: Fix possible buffer leak when an OOME is thrown during allocation by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17059](https://redirect.github.com/netty/netty/pull/17059) > * Avoid leak presence detector in leak profile by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17073](https://redirect.github.com/netty/netty/pull/17073) > * Add HttpContentCompressor constructor with ability to specify desired maxPipelineDepth by [`@reta`](https://github.com/reta) in [netty/netty#17068](https://redirect.github.com/netty/netty/pull/17068) > * IoUring: preserve readPending when rescheduling cancelled reads by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17087](https://redirect.github.com/netty/netty/pull/17087) > * Reject negative maxOrder in PooledByteBufAllocator by [`@coderbruis`](https://github.com/coderbruis) in [netty/netty#17093](https://redirect.github.com/netty/netty/pull/17093) > * Fix AdaptiveByteBuf.\_setLongLE calling checked setLongLE by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17098](https://redirect.github.com/netty/netty/pull/17098) > * Snappy: Guard decoder against invalid chunk lengths by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17099](https://redirect.github.com/netty/netty/pull/17099) > * Fix OCSP Tests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17114](https://redirect.github.com/netty/netty/pull/17114) > * Update to latest netty-tcnative release by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17056](https://redirect.github.com/netty/netty/pull/17056) > * Use safe decompressor in Lz4FrameDecoder by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17118](https://redirect.github.com/netty/netty/pull/17118) > * Configure TestLens for the PR builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17129](https://redirect.github.com/netty/netty/pull/17129) > * IoUring: add SO\_INQ support for Unix domain sockets by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17127](https://redirect.github.com/netty/netty/pull/17127) > * fix(mqtt): drop UNSUBACK reason codes for MQTT 3.x encoding by [`@ChunMengLu`](https://github.com/ChunMengLu) in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * Propagate the CI envionment variables through to the docker builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17138](https://redirect.github.com/netty/netty/pull/17138) > * Codec-compression: Add decompressor API by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16745](https://redirect.github.com/netty/netty/pull/16745) > * Fix silent failures and optimize error short-circuit in multi-threaded tests by [`@rajan-github`](https://github.com/rajan-github) in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * Codec-compression: Add Bzip2Decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17145](https://redirect.github.com/netty/netty/pull/17145) > * Fix buddy cache evicting chunks with live buffers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17154](https://redirect.github.com/netty/netty/pull/17154) > * Codec-compression: Add Snappy frame decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17153](https://redirect.github.com/netty/netty/pull/17153) > * Codec-compression: Add zlib decompressors by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17155](https://redirect.github.com/netty/netty/pull/17155) > * Codec-compression: Add Zstd decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17152](https://redirect.github.com/netty/netty/pull/17152) > * Codec-compression: Add LZF decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17147](https://redirect.github.com/netty/netty/pull/17147) > * Codec-compression: Add BrotliDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17146](https://redirect.github.com/netty/netty/pull/17146) > * Codec-compression: Add Lz4FrameDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17148](https://redirect.github.com/netty/netty/pull/17148) > * `HttpObjectEncoder` / `DefaultHttp2FrameWriter`: fix buffer leak when a `Throwable` is thrown during header encoding by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17089](https://redirect.github.com/netty/netty/pull/17089) > * Fix direct memory OOM on low-core containers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17166](https://redirect.github.com/netty/netty/pull/17166) > * IoUring: Fix the recvmmsg emulation by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17187](https://redirect.github.com/netty/netty/pull/17187) > * Avoid classloader leak via GlobalEventExecutor terminationFuture failure by [`@seonwooj0810`](https://github.com/seonwooj0810) in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * BrotliEncoder: Prevent duplicate close scheduling by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17175](https://redirect.github.com/netty/netty/pull/17175) > * Fix JdkZlibDecompressor losing the tail of highly compressible streams by [`@renechoi`](https://github.com/renechoi) in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) > * Update compress-lzf to 1.2.1 by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17194](https://redirect.github.com/netty/netty/pull/17194) > * Do not write WebSocket handshake response to the tail of the pipeline by [`@el-psy-kongroo-d`](https://github.com/el-psy-kongroo-d) in [netty/netty#17192](https://redirect.github.com/netty/netty/pull/17192) > * `HttpServerCodec`: do not consume the method queue for 1xx interim responses by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17182](https://redirect.github.com/netty/netty/pull/17182) > * Weakly reference engines from the OpenSSL engine map by [`@bryce-anderson`](https://github.com/bryce-anderson) in [netty/netty#17199](https://redirect.github.com/netty/netty/pull/17199) > * OpenSSL: Allow to obtain used named group via OpenSslSession by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17058](https://redirect.github.com/netty/netty/pull/17058) > * Add `.editorconfig` to enforce consistent coding style by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17052](https://redirect.github.com/netty/netty/pull/17052) > * Update surefire plugin to latest version by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17210](https://redirect.github.com/netty/netty/pull/17210) > * Merge changes from forks by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17213](https://redirect.github.com/netty/netty/pull/17213) > > New Contributors > ---------------- > > * [`@vpelikh`](https://github.com/vpelikh) made their first contribution in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * [`@ChunMengLu`](https://github.com/ChunMengLu) made their first contribution in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * [`@rajan-github`](https://github.com/rajan-github) made their first contribution in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * [`@seonwooj0810`](https://github.com/seonwooj0810) made their first contribution in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * [`@renechoi`](https://github.com/renechoi) made their first contribution in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) ... (truncated) Commits * [`e0789d3`](netty/netty@e0789d3) [maven-release-plugin] prepare release netty-4.2.17.Final * [`1b5abc6`](netty/netty@1b5abc6) Merge changes from forks ([#17213](https://redirect.github.com/netty/netty/issues/17213)) * [`36fbf57`](netty/netty@36fbf57) Update surefire plugin to latest version ([#17210](https://redirect.github.com/netty/netty/issues/17210)) * [`a96226c`](netty/netty@a96226c) Add `.editorconfig` to enforce consistent coding style ([#17052](https://redirect.github.com/netty/netty/issues/17052)) * [`14a4e6a`](netty/netty@14a4e6a) OpenSSL: Allow to obtain used named group via OpenSslSession ([#17058](https://redirect.github.com/netty/netty/issues/17058)) * [`26255b1`](netty/netty@26255b1) Weakly reference engines from the OpenSSL engine map ([#17199](https://redirect.github.com/netty/netty/issues/17199)) * [`ae41417`](netty/netty@ae41417) `HttpServerCodec`: do not consume the method queue for 1xx interim responses ... * [`41f1db5`](netty/netty@41f1db5) Do not write WebSocket handshake response to the tail of the pipeline ([#17192](https://redirect.github.com/netty/netty/issues/17192)) * [`035d76e`](netty/netty@035d76e) Update compress-lzf to 1.2.1 ([#17194](https://redirect.github.com/netty/netty/issues/17194)) * [`7681aff`](netty/netty@7681aff) Fix JdkZlibDecompressor losing the tail of highly compressible streams ([#17191](https://redirect.github.com/netty/netty/issues/17191)) * Additional commits viewable in [compare view](netty/netty@netty-4.2.16.Final...netty-4.2.17.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)
…ip ci] Bumps `netty.version` from 4.2.16.Final to 4.2.17.Final. Updates `io.netty:netty-transport` from 4.2.16.Final to 4.2.17.Final Release notes *Sourced from [io.netty:netty-transport's releases](https://github.com/netty/netty/releases).* > netty-4.2.17.Final > ------------------ > > What's Changed > -------------- > > * AsciiString.cached(String) should sanitize the provided String ([#13749](https://redirect.github.com/netty/netty/issues/13749)) by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * Fix deploy workflow by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17071](https://redirect.github.com/netty/netty/pull/17071) > * Fix AsciiString.cached(String) performance regression by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17074](https://redirect.github.com/netty/netty/pull/17074) > * SslHandler: Fix possible buffer leak when an OOME is thrown during allocation by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17059](https://redirect.github.com/netty/netty/pull/17059) > * Avoid leak presence detector in leak profile by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17073](https://redirect.github.com/netty/netty/pull/17073) > * Add HttpContentCompressor constructor with ability to specify desired maxPipelineDepth by [`@reta`](https://github.com/reta) in [netty/netty#17068](https://redirect.github.com/netty/netty/pull/17068) > * IoUring: preserve readPending when rescheduling cancelled reads by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17087](https://redirect.github.com/netty/netty/pull/17087) > * Reject negative maxOrder in PooledByteBufAllocator by [`@coderbruis`](https://github.com/coderbruis) in [netty/netty#17093](https://redirect.github.com/netty/netty/pull/17093) > * Fix AdaptiveByteBuf.\_setLongLE calling checked setLongLE by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17098](https://redirect.github.com/netty/netty/pull/17098) > * Snappy: Guard decoder against invalid chunk lengths by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17099](https://redirect.github.com/netty/netty/pull/17099) > * Fix OCSP Tests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17114](https://redirect.github.com/netty/netty/pull/17114) > * Update to latest netty-tcnative release by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17056](https://redirect.github.com/netty/netty/pull/17056) > * Use safe decompressor in Lz4FrameDecoder by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17118](https://redirect.github.com/netty/netty/pull/17118) > * Configure TestLens for the PR builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17129](https://redirect.github.com/netty/netty/pull/17129) > * IoUring: add SO\_INQ support for Unix domain sockets by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17127](https://redirect.github.com/netty/netty/pull/17127) > * fix(mqtt): drop UNSUBACK reason codes for MQTT 3.x encoding by [`@ChunMengLu`](https://github.com/ChunMengLu) in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * Propagate the CI envionment variables through to the docker builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17138](https://redirect.github.com/netty/netty/pull/17138) > * Codec-compression: Add decompressor API by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16745](https://redirect.github.com/netty/netty/pull/16745) > * Fix silent failures and optimize error short-circuit in multi-threaded tests by [`@rajan-github`](https://github.com/rajan-github) in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * Codec-compression: Add Bzip2Decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17145](https://redirect.github.com/netty/netty/pull/17145) > * Fix buddy cache evicting chunks with live buffers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17154](https://redirect.github.com/netty/netty/pull/17154) > * Codec-compression: Add Snappy frame decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17153](https://redirect.github.com/netty/netty/pull/17153) > * Codec-compression: Add zlib decompressors by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17155](https://redirect.github.com/netty/netty/pull/17155) > * Codec-compression: Add Zstd decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17152](https://redirect.github.com/netty/netty/pull/17152) > * Codec-compression: Add LZF decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17147](https://redirect.github.com/netty/netty/pull/17147) > * Codec-compression: Add BrotliDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17146](https://redirect.github.com/netty/netty/pull/17146) > * Codec-compression: Add Lz4FrameDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17148](https://redirect.github.com/netty/netty/pull/17148) > * `HttpObjectEncoder` / `DefaultHttp2FrameWriter`: fix buffer leak when a `Throwable` is thrown during header encoding by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17089](https://redirect.github.com/netty/netty/pull/17089) > * Fix direct memory OOM on low-core containers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17166](https://redirect.github.com/netty/netty/pull/17166) > * IoUring: Fix the recvmmsg emulation by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17187](https://redirect.github.com/netty/netty/pull/17187) > * Avoid classloader leak via GlobalEventExecutor terminationFuture failure by [`@seonwooj0810`](https://github.com/seonwooj0810) in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * BrotliEncoder: Prevent duplicate close scheduling by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17175](https://redirect.github.com/netty/netty/pull/17175) > * Fix JdkZlibDecompressor losing the tail of highly compressible streams by [`@renechoi`](https://github.com/renechoi) in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) > * Update compress-lzf to 1.2.1 by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17194](https://redirect.github.com/netty/netty/pull/17194) > * Do not write WebSocket handshake response to the tail of the pipeline by [`@el-psy-kongroo-d`](https://github.com/el-psy-kongroo-d) in [netty/netty#17192](https://redirect.github.com/netty/netty/pull/17192) > * `HttpServerCodec`: do not consume the method queue for 1xx interim responses by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17182](https://redirect.github.com/netty/netty/pull/17182) > * Weakly reference engines from the OpenSSL engine map by [`@bryce-anderson`](https://github.com/bryce-anderson) in [netty/netty#17199](https://redirect.github.com/netty/netty/pull/17199) > * OpenSSL: Allow to obtain used named group via OpenSslSession by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17058](https://redirect.github.com/netty/netty/pull/17058) > * Add `.editorconfig` to enforce consistent coding style by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17052](https://redirect.github.com/netty/netty/pull/17052) > * Update surefire plugin to latest version by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17210](https://redirect.github.com/netty/netty/pull/17210) > * Merge changes from forks by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17213](https://redirect.github.com/netty/netty/pull/17213) > > New Contributors > ---------------- > > * [`@vpelikh`](https://github.com/vpelikh) made their first contribution in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * [`@ChunMengLu`](https://github.com/ChunMengLu) made their first contribution in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * [`@rajan-github`](https://github.com/rajan-github) made their first contribution in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * [`@seonwooj0810`](https://github.com/seonwooj0810) made their first contribution in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * [`@renechoi`](https://github.com/renechoi) made their first contribution in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) ... (truncated) Commits * [`e0789d3`](netty/netty@e0789d3) [maven-release-plugin] prepare release netty-4.2.17.Final * [`1b5abc6`](netty/netty@1b5abc6) Merge changes from forks ([#17213](https://redirect.github.com/netty/netty/issues/17213)) * [`36fbf57`](netty/netty@36fbf57) Update surefire plugin to latest version ([#17210](https://redirect.github.com/netty/netty/issues/17210)) * [`a96226c`](netty/netty@a96226c) Add `.editorconfig` to enforce consistent coding style ([#17052](https://redirect.github.com/netty/netty/issues/17052)) * [`14a4e6a`](netty/netty@14a4e6a) OpenSSL: Allow to obtain used named group via OpenSslSession ([#17058](https://redirect.github.com/netty/netty/issues/17058)) * [`26255b1`](netty/netty@26255b1) Weakly reference engines from the OpenSSL engine map ([#17199](https://redirect.github.com/netty/netty/issues/17199)) * [`ae41417`](netty/netty@ae41417) `HttpServerCodec`: do not consume the method queue for 1xx interim responses ... * [`41f1db5`](netty/netty@41f1db5) Do not write WebSocket handshake response to the tail of the pipeline ([#17192](https://redirect.github.com/netty/netty/issues/17192)) * [`035d76e`](netty/netty@035d76e) Update compress-lzf to 1.2.1 ([#17194](https://redirect.github.com/netty/netty/issues/17194)) * [`7681aff`](netty/netty@7681aff) Fix JdkZlibDecompressor losing the tail of highly compressible streams ([#17191](https://redirect.github.com/netty/netty/issues/17191)) * Additional commits viewable in [compare view](netty/netty@netty-4.2.16.Final...netty-4.2.17.Final) Updates `io.netty:netty-codec` from 4.2.16.Final to 4.2.17.Final Release notes *Sourced from [io.netty:netty-codec's releases](https://github.com/netty/netty/releases).* > netty-4.2.17.Final > ------------------ > > What's Changed > -------------- > > * AsciiString.cached(String) should sanitize the provided String ([#13749](https://redirect.github.com/netty/netty/issues/13749)) by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * Fix deploy workflow by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17071](https://redirect.github.com/netty/netty/pull/17071) > * Fix AsciiString.cached(String) performance regression by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17074](https://redirect.github.com/netty/netty/pull/17074) > * SslHandler: Fix possible buffer leak when an OOME is thrown during allocation by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17059](https://redirect.github.com/netty/netty/pull/17059) > * Avoid leak presence detector in leak profile by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17073](https://redirect.github.com/netty/netty/pull/17073) > * Add HttpContentCompressor constructor with ability to specify desired maxPipelineDepth by [`@reta`](https://github.com/reta) in [netty/netty#17068](https://redirect.github.com/netty/netty/pull/17068) > * IoUring: preserve readPending when rescheduling cancelled reads by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17087](https://redirect.github.com/netty/netty/pull/17087) > * Reject negative maxOrder in PooledByteBufAllocator by [`@coderbruis`](https://github.com/coderbruis) in [netty/netty#17093](https://redirect.github.com/netty/netty/pull/17093) > * Fix AdaptiveByteBuf.\_setLongLE calling checked setLongLE by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17098](https://redirect.github.com/netty/netty/pull/17098) > * Snappy: Guard decoder against invalid chunk lengths by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17099](https://redirect.github.com/netty/netty/pull/17099) > * Fix OCSP Tests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17114](https://redirect.github.com/netty/netty/pull/17114) > * Update to latest netty-tcnative release by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17056](https://redirect.github.com/netty/netty/pull/17056) > * Use safe decompressor in Lz4FrameDecoder by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17118](https://redirect.github.com/netty/netty/pull/17118) > * Configure TestLens for the PR builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17129](https://redirect.github.com/netty/netty/pull/17129) > * IoUring: add SO\_INQ support for Unix domain sockets by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17127](https://redirect.github.com/netty/netty/pull/17127) > * fix(mqtt): drop UNSUBACK reason codes for MQTT 3.x encoding by [`@ChunMengLu`](https://github.com/ChunMengLu) in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * Propagate the CI envionment variables through to the docker builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17138](https://redirect.github.com/netty/netty/pull/17138) > * Codec-compression: Add decompressor API by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16745](https://redirect.github.com/netty/netty/pull/16745) > * Fix silent failures and optimize error short-circuit in multi-threaded tests by [`@rajan-github`](https://github.com/rajan-github) in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * Codec-compression: Add Bzip2Decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17145](https://redirect.github.com/netty/netty/pull/17145) > * Fix buddy cache evicting chunks with live buffers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17154](https://redirect.github.com/netty/netty/pull/17154) > * Codec-compression: Add Snappy frame decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17153](https://redirect.github.com/netty/netty/pull/17153) > * Codec-compression: Add zlib decompressors by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17155](https://redirect.github.com/netty/netty/pull/17155) > * Codec-compression: Add Zstd decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17152](https://redirect.github.com/netty/netty/pull/17152) > * Codec-compression: Add LZF decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17147](https://redirect.github.com/netty/netty/pull/17147) > * Codec-compression: Add BrotliDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17146](https://redirect.github.com/netty/netty/pull/17146) > * Codec-compression: Add Lz4FrameDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17148](https://redirect.github.com/netty/netty/pull/17148) > * `HttpObjectEncoder` / `DefaultHttp2FrameWriter`: fix buffer leak when a `Throwable` is thrown during header encoding by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17089](https://redirect.github.com/netty/netty/pull/17089) > * Fix direct memory OOM on low-core containers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17166](https://redirect.github.com/netty/netty/pull/17166) > * IoUring: Fix the recvmmsg emulation by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17187](https://redirect.github.com/netty/netty/pull/17187) > * Avoid classloader leak via GlobalEventExecutor terminationFuture failure by [`@seonwooj0810`](https://github.com/seonwooj0810) in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * BrotliEncoder: Prevent duplicate close scheduling by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17175](https://redirect.github.com/netty/netty/pull/17175) > * Fix JdkZlibDecompressor losing the tail of highly compressible streams by [`@renechoi`](https://github.com/renechoi) in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) > * Update compress-lzf to 1.2.1 by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17194](https://redirect.github.com/netty/netty/pull/17194) > * Do not write WebSocket handshake response to the tail of the pipeline by [`@el-psy-kongroo-d`](https://github.com/el-psy-kongroo-d) in [netty/netty#17192](https://redirect.github.com/netty/netty/pull/17192) > * `HttpServerCodec`: do not consume the method queue for 1xx interim responses by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17182](https://redirect.github.com/netty/netty/pull/17182) > * Weakly reference engines from the OpenSSL engine map by [`@bryce-anderson`](https://github.com/bryce-anderson) in [netty/netty#17199](https://redirect.github.com/netty/netty/pull/17199) > * OpenSSL: Allow to obtain used named group via OpenSslSession by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17058](https://redirect.github.com/netty/netty/pull/17058) > * Add `.editorconfig` to enforce consistent coding style by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17052](https://redirect.github.com/netty/netty/pull/17052) > * Update surefire plugin to latest version by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17210](https://redirect.github.com/netty/netty/pull/17210) > * Merge changes from forks by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17213](https://redirect.github.com/netty/netty/pull/17213) > > New Contributors > ---------------- > > * [`@vpelikh`](https://github.com/vpelikh) made their first contribution in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * [`@ChunMengLu`](https://github.com/ChunMengLu) made their first contribution in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * [`@rajan-github`](https://github.com/rajan-github) made their first contribution in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * [`@seonwooj0810`](https://github.com/seonwooj0810) made their first contribution in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * [`@renechoi`](https://github.com/renechoi) made their first contribution in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) ... (truncated) Commits * [`e0789d3`](netty/netty@e0789d3) [maven-release-plugin] prepare release netty-4.2.17.Final * [`1b5abc6`](netty/netty@1b5abc6) Merge changes from forks ([#17213](https://redirect.github.com/netty/netty/issues/17213)) * [`36fbf57`](netty/netty@36fbf57) Update surefire plugin to latest version ([#17210](https://redirect.github.com/netty/netty/issues/17210)) * [`a96226c`](netty/netty@a96226c) Add `.editorconfig` to enforce consistent coding style ([#17052](https://redirect.github.com/netty/netty/issues/17052)) * [`14a4e6a`](netty/netty@14a4e6a) OpenSSL: Allow to obtain used named group via OpenSslSession ([#17058](https://redirect.github.com/netty/netty/issues/17058)) * [`26255b1`](netty/netty@26255b1) Weakly reference engines from the OpenSSL engine map ([#17199](https://redirect.github.com/netty/netty/issues/17199)) * [`ae41417`](netty/netty@ae41417) `HttpServerCodec`: do not consume the method queue for 1xx interim responses ... * [`41f1db5`](netty/netty@41f1db5) Do not write WebSocket handshake response to the tail of the pipeline ([#17192](https://redirect.github.com/netty/netty/issues/17192)) * [`035d76e`](netty/netty@035d76e) Update compress-lzf to 1.2.1 ([#17194](https://redirect.github.com/netty/netty/issues/17194)) * [`7681aff`](netty/netty@7681aff) Fix JdkZlibDecompressor losing the tail of highly compressible streams ([#17191](https://redirect.github.com/netty/netty/issues/17191)) * Additional commits viewable in [compare view](netty/netty@netty-4.2.16.Final...netty-4.2.17.Final) Updates `io.netty:netty-handler` from 4.2.16.Final to 4.2.17.Final Release notes *Sourced from [io.netty:netty-handler's releases](https://github.com/netty/netty/releases).* > netty-4.2.17.Final > ------------------ > > What's Changed > -------------- > > * AsciiString.cached(String) should sanitize the provided String ([#13749](https://redirect.github.com/netty/netty/issues/13749)) by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * Fix deploy workflow by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17071](https://redirect.github.com/netty/netty/pull/17071) > * Fix AsciiString.cached(String) performance regression by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17074](https://redirect.github.com/netty/netty/pull/17074) > * SslHandler: Fix possible buffer leak when an OOME is thrown during allocation by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17059](https://redirect.github.com/netty/netty/pull/17059) > * Avoid leak presence detector in leak profile by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17073](https://redirect.github.com/netty/netty/pull/17073) > * Add HttpContentCompressor constructor with ability to specify desired maxPipelineDepth by [`@reta`](https://github.com/reta) in [netty/netty#17068](https://redirect.github.com/netty/netty/pull/17068) > * IoUring: preserve readPending when rescheduling cancelled reads by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17087](https://redirect.github.com/netty/netty/pull/17087) > * Reject negative maxOrder in PooledByteBufAllocator by [`@coderbruis`](https://github.com/coderbruis) in [netty/netty#17093](https://redirect.github.com/netty/netty/pull/17093) > * Fix AdaptiveByteBuf.\_setLongLE calling checked setLongLE by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17098](https://redirect.github.com/netty/netty/pull/17098) > * Snappy: Guard decoder against invalid chunk lengths by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17099](https://redirect.github.com/netty/netty/pull/17099) > * Fix OCSP Tests by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17114](https://redirect.github.com/netty/netty/pull/17114) > * Update to latest netty-tcnative release by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17056](https://redirect.github.com/netty/netty/pull/17056) > * Use safe decompressor in Lz4FrameDecoder by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17118](https://redirect.github.com/netty/netty/pull/17118) > * Configure TestLens for the PR builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17129](https://redirect.github.com/netty/netty/pull/17129) > * IoUring: add SO\_INQ support for Unix domain sockets by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17127](https://redirect.github.com/netty/netty/pull/17127) > * fix(mqtt): drop UNSUBACK reason codes for MQTT 3.x encoding by [`@ChunMengLu`](https://github.com/ChunMengLu) in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * Propagate the CI envionment variables through to the docker builds by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17138](https://redirect.github.com/netty/netty/pull/17138) > * Codec-compression: Add decompressor API by [`@yawkat`](https://github.com/yawkat) in [netty/netty#16745](https://redirect.github.com/netty/netty/pull/16745) > * Fix silent failures and optimize error short-circuit in multi-threaded tests by [`@rajan-github`](https://github.com/rajan-github) in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * Codec-compression: Add Bzip2Decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17145](https://redirect.github.com/netty/netty/pull/17145) > * Fix buddy cache evicting chunks with live buffers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17154](https://redirect.github.com/netty/netty/pull/17154) > * Codec-compression: Add Snappy frame decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17153](https://redirect.github.com/netty/netty/pull/17153) > * Codec-compression: Add zlib decompressors by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17155](https://redirect.github.com/netty/netty/pull/17155) > * Codec-compression: Add Zstd decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17152](https://redirect.github.com/netty/netty/pull/17152) > * Codec-compression: Add LZF decompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17147](https://redirect.github.com/netty/netty/pull/17147) > * Codec-compression: Add BrotliDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17146](https://redirect.github.com/netty/netty/pull/17146) > * Codec-compression: Add Lz4FrameDecompressor by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17148](https://redirect.github.com/netty/netty/pull/17148) > * `HttpObjectEncoder` / `DefaultHttp2FrameWriter`: fix buffer leak when a `Throwable` is thrown during header encoding by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17089](https://redirect.github.com/netty/netty/pull/17089) > * Fix direct memory OOM on low-core containers by [`@franz1981`](https://github.com/franz1981) in [netty/netty#17166](https://redirect.github.com/netty/netty/pull/17166) > * IoUring: Fix the recvmmsg emulation by [`@dreamlike-ocean`](https://github.com/dreamlike-ocean) in [netty/netty#17187](https://redirect.github.com/netty/netty/pull/17187) > * Avoid classloader leak via GlobalEventExecutor terminationFuture failure by [`@seonwooj0810`](https://github.com/seonwooj0810) in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * BrotliEncoder: Prevent duplicate close scheduling by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17175](https://redirect.github.com/netty/netty/pull/17175) > * Fix JdkZlibDecompressor losing the tail of highly compressible streams by [`@renechoi`](https://github.com/renechoi) in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) > * Update compress-lzf to 1.2.1 by [`@yawkat`](https://github.com/yawkat) in [netty/netty#17194](https://redirect.github.com/netty/netty/pull/17194) > * Do not write WebSocket handshake response to the tail of the pipeline by [`@el-psy-kongroo-d`](https://github.com/el-psy-kongroo-d) in [netty/netty#17192](https://redirect.github.com/netty/netty/pull/17192) > * `HttpServerCodec`: do not consume the method queue for 1xx interim responses by [`@HwangRock`](https://github.com/HwangRock) in [netty/netty#17182](https://redirect.github.com/netty/netty/pull/17182) > * Weakly reference engines from the OpenSSL engine map by [`@bryce-anderson`](https://github.com/bryce-anderson) in [netty/netty#17199](https://redirect.github.com/netty/netty/pull/17199) > * OpenSSL: Allow to obtain used named group via OpenSslSession by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17058](https://redirect.github.com/netty/netty/pull/17058) > * Add `.editorconfig` to enforce consistent coding style by [`@vpelikh`](https://github.com/vpelikh) in [netty/netty#17052](https://redirect.github.com/netty/netty/pull/17052) > * Update surefire plugin to latest version by [`@normanmaurer`](https://github.com/normanmaurer) in [netty/netty#17210](https://redirect.github.com/netty/netty/pull/17210) > * Merge changes from forks by [`@chrisvest`](https://github.com/chrisvest) in [netty/netty#17213](https://redirect.github.com/netty/netty/pull/17213) > > New Contributors > ---------------- > > * [`@vpelikh`](https://github.com/vpelikh) made their first contribution in [netty/netty#17007](https://redirect.github.com/netty/netty/pull/17007) > * [`@ChunMengLu`](https://github.com/ChunMengLu) made their first contribution in [netty/netty#17117](https://redirect.github.com/netty/netty/pull/17117) > * [`@rajan-github`](https://github.com/rajan-github) made their first contribution in [netty/netty#17106](https://redirect.github.com/netty/netty/pull/17106) > * [`@seonwooj0810`](https://github.com/seonwooj0810) made their first contribution in [netty/netty#17140](https://redirect.github.com/netty/netty/pull/17140) > * [`@renechoi`](https://github.com/renechoi) made their first contribution in [netty/netty#17191](https://redirect.github.com/netty/netty/pull/17191) ... (truncated) Commits * [`e0789d3`](netty/netty@e0789d3) [maven-release-plugin] prepare release netty-4.2.17.Final * [`1b5abc6`](netty/netty@1b5abc6) Merge changes from forks ([#17213](https://redirect.github.com/netty/netty/issues/17213)) * [`36fbf57`](netty/netty@36fbf57) Update surefire plugin to latest version ([#17210](https://redirect.github.com/netty/netty/issues/17210)) * [`a96226c`](netty/netty@a96226c) Add `.editorconfig` to enforce consistent coding style ([#17052](https://redirect.github.com/netty/netty/issues/17052)) * [`14a4e6a`](netty/netty@14a4e6a) OpenSSL: Allow to obtain used named group via OpenSslSession ([#17058](https://redirect.github.com/netty/netty/issues/17058)) * [`26255b1`](netty/netty@26255b1) Weakly reference engines from the OpenSSL engine map ([#17199](https://redirect.github.com/netty/netty/issues/17199)) * [`ae41417`](netty/netty@ae41417) `HttpServerCodec`: do not consume the method queue for 1xx interim responses ... * [`41f1db5`](netty/netty@41f1db5) Do not write WebSocket handshake response to the tail of the pipeline ([#17192](https://redirect.github.com/netty/netty/issues/17192)) * [`035d76e`](netty/netty@035d76e) Update compress-lzf to 1.2.1 ([#17194](https://redirect.github.com/netty/netty/issues/17194)) * [`7681aff`](netty/netty@7681aff) Fix JdkZlibDecompressor losing the tail of highly compressible streams ([#17191](https://redirect.github.com/netty/netty/issues/17191)) * Additional commits viewable in [compare view](netty/netty@netty-4.2.16.Final...netty-4.2.17.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)
| Back | FazBrowse Home | New Git URL |
Motivation:
WebSocketServerHandshaker writes the 101 Switching Protocols response via
Channel.writeAndFlush(). The write starts at the tail of the pipeline, so every
ChannelOutboundHandler placed after WebSocketServerProtocolHandler sees the
raw HTTP upgrade response, even though handlers there operate on WebSocket
frames. In #17141 a handler that queues outbound messages until
HandshakeComplete captured the response itself, so the handshake could never
complete.
WebSocketServerHandshaker already provides ChannelHandlerContext overloads
for close() for the same reason; this change applies the same pattern to the
handshake response.
Modification:
WebSocketServerHandshaker, following the existing
close(ChannelHandlerContext, ...) overloads in the same class, and route both
variants through a shared handshake0(ChannelOutboundInvoker, Channel, ...).
is written from the handshake handler's former position.
observes no write during the handshake, for both full and non-full upgrade
requests. Existing tests that captured the response behind the protocol
handler now read it via readOutbound(). Four handshake(null, ...) calls
needed a (Channel) cast to stay unambiguous.
Notes:
the protocol handler, as in WebSocketServerInitializer) nothing changes: the
write still traverses WebSocketServerExtensionHandler and the HTTP encoder.
Only handlers behind the protocol handler stop seeing the 101, which is the
bug being fixed.
covered by WebSocketServerHandshaker00/08/13Test and
WebSocketServerHandshakerTest.
Result:
Fixes #17141.