| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
There was a problem hiding this comment.
Good finding! I missed it 🙏
Sorry, something went wrong.
There was a problem hiding this comment.
LGTM
Sorry, something went wrong.
|
Could not create auto-port PR. |
Sorry, something went wrong.
|
Could not create auto-port PR. |
Sorry, something went wrong.
Motivation: #17007 fixed #13749 by making `AsciiString.cached(String)` sanitize non-Latin-1 input before caching the `String` value. That change preserved the correct behavior, but introduced a performance regression. The implementation now performs two separate scans over the input string: 1. `new AsciiString(string)` copies chars into the backing byte array via `c2b(...)`. 2. `AsciiString.cached(String)` scans the same string again to check whether any char is greater than `MAX_CHAR_VALUE`. PrintAssembly results show that C2 does not merge these two loops after JIT compilation. The old version still contains the second scan loop in `AsciiString.cached`, while the optimized version has a single loop that performs both `c2b(...)` conversion and the Latin-1 check. [jit-actual-old-c2-ascii-final.txt](https://github.com/user-attachments/files/29848724/jit-actual-old-c2-ascii-final.txt) [jit-actual-current-c2-ascii-final.txt](https://github.com/user-attachments/files/29848711/jit-actual-new-c2-ascii-final.txt) Modification: Merge the byte conversion and Latin-1 detection into a single loop in `AsciiString.cached(String)`. The method now allocates the byte array directly, fills it using the existing `c2b(char)` conversion, and tracks whether every input char is Latin-1 during the same pass. It still preserves the original `String` instance for ASCII/Latin-1 input, and reconstructs the cached string from the byte array only when sanitization is required. Result: This removes the extra input scan while preserving the behavior introduced by #17007. Co-authored-by: Mengyang Li <56702218+dreamlike-ocean@users.noreply.github.com>
Motivation: #17007 fixed #13749 by making `AsciiString.cached(String)` sanitize non-Latin-1 input before caching the `String` value. That change preserved the correct behavior, but introduced a performance regression. The implementation now performs two separate scans over the input string: 1. `new AsciiString(string)` copies chars into the backing byte array via `c2b(...)`. 2. `AsciiString.cached(String)` scans the same string again to check whether any char is greater than `MAX_CHAR_VALUE`. PrintAssembly results show that C2 does not merge these two loops after JIT compilation. The old version still contains the second scan loop in `AsciiString.cached`, while the optimized version has a single loop that performs both `c2b(...)` conversion and the Latin-1 check. [jit-actual-old-c2-ascii-final.txt](https://github.com/user-attachments/files/29848724/jit-actual-old-c2-ascii-final.txt) [jit-actual-current-c2-ascii-final.txt](https://github.com/user-attachments/files/29848711/jit-actual-new-c2-ascii-final.txt) Modification: Merge the byte conversion and Latin-1 detection into a single loop in `AsciiString.cached(String)`. The method now allocates the byte array directly, fills it using the existing `c2b(char)` conversion, and tracks whether every input char is Latin-1 during the same pass. It still preserves the original `String` instance for ASCII/Latin-1 input, and reconstructs the cached string from the byte array only when sanitization is required. Result: This removes the extra input scan while preserving the behavior introduced by #17007. Co-authored-by: Mengyang Li <56702218+dreamlike-ocean@users.noreply.github.com>
Motivation: #17007 fixed #13749 by making `AsciiString.cached(String)` sanitize non-Latin-1 input before caching the `String` value. That change preserved the correct behavior, but introduced a performance regression. The implementation now performs two separate scans over the input string: 1. `new AsciiString(string)` copies chars into the backing byte array via `c2b(...)`. 2. `AsciiString.cached(String)` scans the same string again to check whether any char is greater than `MAX_CHAR_VALUE`. PrintAssembly results show that C2 does not merge these two loops after JIT compilation. The old version still contains the second scan loop in `AsciiString.cached`, while the optimized version has a single loop that performs both `c2b(...)` conversion and the Latin-1 check. [jit-actual-old-c2-ascii-final.txt](https://github.com/user-attachments/files/29848724/jit-actual-old-c2-ascii-final.txt) [jit-actual-current-c2-ascii-final.txt](https://github.com/user-attachments/files/29848711/jit-actual-new-c2-ascii-final.txt) Modification: Merge the byte conversion and Latin-1 detection into a single loop in `AsciiString.cached(String)`. The method now allocates the byte array directly, fills it using the existing `c2b(char)` conversion, and tracks whether every input char is Latin-1 during the same pass. It still preserves the original `String` instance for ASCII/Latin-1 input, and reconstructs the cached string from the byte array only when sanitization is required. Result: This removes the extra input scan while preserving the behavior introduced by #17007. Co-authored-by: Mengyang Li <56702218+dreamlike-ocean@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:
#17007 fixed #13749 by making AsciiString.cached(String) sanitize non-Latin-1 input before caching the String value.
That change preserved the correct behavior, but introduced a performance regression. The implementation now performs two separate scans over the input string:
PrintAssembly results show that C2 does not merge these two loops after JIT compilation. The old version still contains the second scan loop in AsciiString.cached, while the optimized version has a single loop that performs both c2b(...) conversion and the Latin-1 check.
jit-actual-old-c2-ascii-final.txt
jit-actual-current-c2-ascii-final.txt
Modification:
Merge the byte conversion and Latin-1 detection into a single loop in AsciiString.cached(String).
The method now allocates the byte array directly, fills it using the existing c2b(char) conversion, and tracks whether every input char is Latin-1 during the same pass. It still preserves the original String instance for ASCII/Latin-1 input, and reconstructs the cached string from the byte array only when sanitization is required.
Result:
This removes the extra input scan while preserving the behavior introduced by #17007.