This is an automated email from the ASF dual-hosted git repository.

merlimat pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/bookkeeper.git


The following commit(s) were added to refs/heads/master by this push:
     new 6fac859db3 Upgrade Netty to 4.2.12.Final (#4744)
6fac859db3 is described below

commit 6fac859db3b1fb7ce640d2cfda4f4933771f2f28
Author: Matteo Merli <[email protected]>
AuthorDate: Sat Apr 18 06:45:25 2026 -0700

    Upgrade Netty to 4.2.12.Final (#4744)
---
 bookkeeper-common/pom.xml                          |  12 ++-
 .../src/main/resources/LICENSE-all.bin.txt         | 111 +++++++++++----------
 .../src/main/resources/LICENSE-bkctl.bin.txt       |  98 +++++++++---------
 .../src/main/resources/LICENSE-server.bin.txt      | 111 +++++++++++----------
 .../src/main/resources/NOTICE-all.bin.txt          |  52 +++++-----
 .../src/main/resources/NOTICE-bkctl.bin.txt        |  39 ++++----
 .../src/main/resources/NOTICE-server.bin.txt       |  52 +++++-----
 bookkeeper-server/pom.xml                          |   4 +
 .../apache/bookkeeper/proto/BookieNettyServer.java |  11 +-
 .../bookkeeper/proto/PerChannelBookieClient.java   |  12 +--
 .../apache/bookkeeper/tls/TLSContextFactory.java   |  11 +-
 .../org/apache/bookkeeper/util/EventLoopUtil.java  |  16 ++-
 .../bookkeeper/proto/BookieProtoEncodingTest.java  |  26 +++--
 pom.xml                                            |  25 +----
 14 files changed, 296 insertions(+), 284 deletions(-)

diff --git a/bookkeeper-common/pom.xml b/bookkeeper-common/pom.xml
index cc54811599..985f1e2fb7 100644
--- a/bookkeeper-common/pom.xml
+++ b/bookkeeper-common/pom.xml
@@ -73,13 +73,17 @@
       <artifactId>commons-lang3</artifactId>
     </dependency>
     <dependency>
-      <groupId>io.netty.incubator</groupId>
-      <artifactId>netty-incubator-transport-native-io_uring</artifactId>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport-classes-io_uring</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport-native-io_uring</artifactId>
       <classifier>linux-x86_64</classifier>
     </dependency>
     <dependency>
-      <groupId>io.netty.incubator</groupId>
-      <artifactId>netty-incubator-transport-native-io_uring</artifactId>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport-native-io_uring</artifactId>
       <classifier>linux-aarch_64</classifier>
     </dependency>
     <dependency>
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
index 9fb5a8424f..e23b4fe4b0 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-all.bin.txt
@@ -216,32 +216,33 @@ Apache Software License, Version 2.
 - lib/commons-codec-commons-codec-1.18.0.jar [6]
 - lib/commons-io-commons-io-2.19.0.jar [8]
 - lib/commons-logging-commons-logging-1.3.5.jar [10]
-- lib/io.netty-netty-buffer-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-dns-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-http-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-http2-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-socks-4.1.130.Final.jar [11]
-- lib/io.netty-netty-common-4.1.130.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.130.Final.jar [11]
-- lib/io.netty-netty-handler-proxy-4.1.130.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.130.Final.jar [11]
-- lib/io.netty-netty-resolver-dns-4.1.130.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.26.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar [11]
+- lib/io.netty-netty-buffer-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-compression-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-dns-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-http-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-http2-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-socks-4.2.12.Final.jar [11]
+- lib/io.netty-netty-common-4.2.12.Final.jar [11]
+- lib/io.netty-netty-handler-4.2.12.Final.jar [11]
+- lib/io.netty-netty-handler-proxy-4.2.12.Final.jar [11]
+- lib/io.netty-netty-resolver-4.2.12.Final.jar [11]
+- lib/io.netty-netty-resolver-dns-4.2.12.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar [11]
+- lib/io.netty-netty-transport-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar [11]
 - lib/io.prometheus-simpleclient-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_common-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_hotspot-0.15.0.jar [12]
@@ -373,7 +374,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.19.0
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.3.5
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.130.Final
+[11] Source available at https://github.com/netty/netty/tree/netty-4.2.12.Final
 [12] Source available at 
https://github.com/prometheus/client_java/tree/parent-0.15.0
 [13] Source available at https://github.com/vert-x3/vertx-auth/tree/4.3.2
 [14] Source available at 
https://github.com/vert-x3/vertx-bridge-common/tree/4.3.2
@@ -422,9 +423,9 @@ Apache Software License, Version 2.
 [62] Source available at 
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
 [63] Source available at 
https://github.com/googleapis/sdk-platform-java/tree/v2.53.0/api-common-java
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.130.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-base-4.2.12.Final.jar bundles some 3rd party 
dependencies
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -433,7 +434,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -441,7 +442,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -449,7 +450,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -457,7 +458,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -467,7 +468,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -475,7 +476,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -484,7 +485,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -492,7 +493,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JZlib', 
a re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -500,7 +501,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -508,7 +509,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lz4-java', a 
LZ4 Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lz4-java', a LZ4 Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -516,7 +517,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/yawkat/lz4-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lzma-java', a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -524,7 +525,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -532,7 +533,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
and optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -540,7 +541,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -549,7 +550,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Snappy', 
a compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -557,7 +558,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -565,7 +566,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Caliper', Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -573,7 +574,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -581,7 +582,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -589,7 +590,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Aalto 
XML', an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -597,7 +598,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -605,7 +606,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -613,7 +614,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -621,7 +622,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -630,7 +631,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the Maven wrapper 
scripts from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -638,7 +639,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the dnsinfo.h header 
file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
index abfeb28f27..6982f75955 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-bkctl.bin.txt
@@ -216,26 +216,26 @@ Apache Software License, Version 2.
 - lib/commons-codec-commons-codec-1.18.0.jar [6]
 - lib/commons-io-commons-io-2.19.0.jar [8]
 - lib/commons-logging-commons-logging-1.3.5.jar [10]
-- lib/io.netty-netty-buffer-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.130.Final.jar [11]
-- lib/io.netty-netty-common-4.1.130.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.130.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.130.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.26.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar [11]
+- lib/io.netty-netty-buffer-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar [11]
+- lib/io.netty-netty-common-4.2.12.Final.jar [11]
+- lib/io.netty-netty-handler-4.2.12.Final.jar [11]
+- lib/io.netty-netty-resolver-4.2.12.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar [11]
+- lib/io.netty-netty-transport-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar [11]
 - lib/org.apache.logging.log4j-log4j-api-2.23.1.jar [16]
 - lib/org.apache.logging.log4j-log4j-core-2.23.1.jar [16]
 - lib/org.apache.logging.log4j-log4j-slf4j2-impl-2.23.1.jar [16]
@@ -320,7 +320,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.19.0
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.3.5
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.130.Final
+[11] Source available at https://github.com/netty/netty/tree/netty-4.2.12.Final
 [16] Source available at 
https://github.com/apache/logging-log4j2/tree/rel/2.23.1
 [18] Source available at 
https://github.com/apache/commons-collections/tree/collections-4.1
 [19] Source available at https://github.com/apache/commons-lang/tree/LANG_3_6
@@ -356,9 +356,9 @@ Apache Software License, Version 2.
 [57] Source available at 
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
 [58] Source available at 
https://github.com/googleapis/sdk-platform-java/tree/v2.53.0/api-common-java
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.130.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-base-4.2.12.Final.jar bundles some 3rd party 
dependencies
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -367,7 +367,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -375,7 +375,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -383,7 +383,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -391,7 +391,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -401,7 +401,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -409,7 +409,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -418,7 +418,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -426,7 +426,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JZlib', 
a re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -434,7 +434,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -442,7 +442,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lz4-java', a 
LZ4 Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lz4-java', a LZ4 Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -450,7 +450,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/yawkat/lz4-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lzma-java', a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -458,7 +458,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -466,7 +466,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
and optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -474,7 +474,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -483,7 +483,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Snappy', 
a compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -491,7 +491,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -499,7 +499,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Caliper', Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -507,7 +507,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -515,7 +515,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -523,7 +523,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Aalto 
XML', an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -531,7 +531,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -539,7 +539,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -547,7 +547,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -555,7 +555,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -564,7 +564,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the Maven wrapper 
scripts from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -572,7 +572,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the dnsinfo.h header 
file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
index e5907929af..b4b7a8f44e 100644
--- a/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/LICENSE-server.bin.txt
@@ -216,32 +216,33 @@ Apache Software License, Version 2.
 - lib/commons-codec-commons-codec-1.18.0.jar [6]
 - lib/commons-io-commons-io-2.19.0.jar [8]
 - lib/commons-logging-commons-logging-1.3.5.jar [10]
-- lib/io.netty-netty-buffer-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-dns-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-http-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-http2-4.1.130.Final.jar [11]
-- lib/io.netty-netty-codec-socks-4.1.130.Final.jar [11]
-- lib/io.netty-netty-common-4.1.130.Final.jar [11]
-- lib/io.netty-netty-handler-4.1.130.Final.jar [11]
-- lib/io.netty-netty-handler-proxy-4.1.130.Final.jar [11]
-- lib/io.netty-netty-resolver-4.1.130.Final.jar [11]
-- lib/io.netty-netty-resolver-dns-4.1.130.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar [11]
-- lib/io.netty-netty-transport-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar [11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
 [11]
-- 
lib/io.netty.incubator-netty-incubator-transport-classes-io_uring-0.0.26.Final.jar
 [11]
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar [11]
+- lib/io.netty-netty-buffer-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-compression-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-dns-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-http-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-http2-4.2.12.Final.jar [11]
+- lib/io.netty-netty-codec-socks-4.2.12.Final.jar [11]
+- lib/io.netty-netty-common-4.2.12.Final.jar [11]
+- lib/io.netty-netty-handler-4.2.12.Final.jar [11]
+- lib/io.netty-netty-handler-proxy-4.2.12.Final.jar [11]
+- lib/io.netty-netty-resolver-4.2.12.Final.jar [11]
+- lib/io.netty-netty-resolver-dns-4.2.12.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar [11]
+- lib/io.netty-netty-transport-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar [11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar [11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar [11]
 - lib/io.prometheus-simpleclient-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_common-0.15.0.jar [12]
 - lib/io.prometheus-simpleclient_hotspot-0.15.0.jar [12]
@@ -369,7 +370,7 @@ Apache Software License, Version 2.
 [8] Source available at 
https://github.com/apache/commons-io/tree/rel/commons-io-2.19.0
 [9] Source available at https://github.com/apache/commons-lang/tree/LANG_2_6
 [10] Source available at 
https://github.com/apache/commons-logging/tree/commons-logging-1.3.5
-[11] Source available at 
https://github.com/netty/netty/tree/netty-4.1.130.Final
+[11] Source available at https://github.com/netty/netty/tree/netty-4.2.12.Final
 [12] Source available at 
https://github.com/prometheus/client_java/tree/parent-0.15.0
 [13] Source available at https://github.com/vert-x3/vertx-auth/tree/4.3.2
 [14] Source available at 
https://github.com/vert-x3/vertx-bridge-common/tree/4.3.2
@@ -417,9 +418,9 @@ Apache Software License, Version 2.
 [61] Source available at 
https://github.com/apache/commons-beanutils/tree/rel/commons-beanutils-1.11.0
 [62] Source available at 
https://github.com/googleapis/sdk-platform-java/tree/v2.53.0/api-common-java
 
------------------------------------------------------------------------------------
-lib/io.netty-netty-codec-4.1.130.Final.jar bundles some 3rd party dependencies
+lib/io.netty-netty-codec-base-4.2.12.Final.jar bundles some 3rd party 
dependencies
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the extensions to Java 
Collections Framework which has
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the extensions to Java 
Collections Framework which has
 been derived from the works by JSR-166 EG, Doug Lea, and Jason T. Greene:
 
   * LICENSE:
@@ -428,7 +429,7 @@ been derived from the works by JSR-166 EG, Doug Lea, and 
Jason T. Greene:
     * http://gee.cs.oswego.edu/cgi-bin/viewcvs.cgi/jsr166/
     * 
http://viewvc.jboss.org/cgi-bin/viewvc.cgi/jbosscache/experimental/jsr166/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
Robert Harder's Public Domain
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
Robert Harder's Public Domain
 Base64 Encoder and Decoder, which can be obtained at:
 
   * LICENSE:
@@ -436,7 +437,7 @@ Base64 Encoder and Decoder, which can be obtained at:
   * HOMEPAGE:
     * http://iharder.sourceforge.net/current/java/base64/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Webbit', an event based
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Webbit', an event based
 WebSocket and HTTP server, which can be obtained at:
 
   * LICENSE:
@@ -444,7 +445,7 @@ WebSocket and HTTP server, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/joewalnes/webbit
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'SLF4J', a simple logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'SLF4J', a simple logging
 facade for Java, which can be obtained at:
 
   * LICENSE:
@@ -452,7 +453,7 @@ facade for Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.slf4j.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Harmony', an open source
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Harmony', an open source
 Java SE, which can be obtained at:
 
   * NOTICE:
@@ -462,7 +463,7 @@ Java SE, which can be obtained at:
   * HOMEPAGE:
     * http://archive.apache.org/dist/harmony/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jbzip2', a Java bzip2 compression
 and decompression library written by Matthew J. Francis. It can be obtained at:
 
   * LICENSE:
@@ -470,7 +471,7 @@ and decompression library written by Matthew J. Francis. It 
can be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jbzip2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'libdivsufsort', a C API library to construct
 the suffix array and the Burrows-Wheeler transformed string for any input 
string of
 a constant-size alphabet written by Yuta Mori. It can be obtained at:
 
@@ -479,7 +480,7 @@ a constant-size alphabet written by Yuta Mori. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/y-256/libdivsufsort
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
Nitsan Wakart's 'JCTools',
 Java Concurrency Tools for the JVM, which can be obtained at:
 
   * LICENSE:
@@ -487,7 +488,7 @@ Java Concurrency Tools for the JVM, which can be obtained 
at:
   * HOMEPAGE:
     * https://github.com/JCTools/JCTools
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JZlib', a 
re-implementation of zlib in
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JZlib', 
a re-implementation of zlib in
 pure Java, which can be obtained at:
 
   * LICENSE:
@@ -495,7 +496,7 @@ pure Java, which can be obtained at:
   * HOMEPAGE:
     * http://www.jcraft.com/jzlib/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Compress-LZF', a Java library for encoding and
 decoding data in LZF format, written by Tatu Saloranta. It can be obtained at:
 
   * LICENSE:
@@ -503,7 +504,7 @@ decoding data in LZF format, written by Tatu Saloranta. It 
can be obtained at:
   * HOMEPAGE:
     * https://github.com/ning/compress
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lz4-java', a 
LZ4 Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lz4-java', a LZ4 Java compression
 and decompression library written by Adrien Grand. It can be obtained at:
 
   * LICENSE:
@@ -511,7 +512,7 @@ and decompression library written by Adrien Grand. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/yawkat/lz4-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'lzma-java', 
a LZMA Java compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'lzma-java', a LZMA Java compression
 and decompression library, which can be obtained at:
 
   * LICENSE:
@@ -519,7 +520,7 @@ and decompression library, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jponge/lzma-java
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'jfastlz', a Java port of FastLZ compression
 and decompression library written by William Kinney. It can be obtained at:
 
   * LICENSE:
@@ -527,7 +528,7 @@ and decompression library written by William Kinney. It can 
be obtained at:
   * HOMEPAGE:
     * https://code.google.com/p/jfastlz/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of and 
optionally depends on 'Protocol Buffers',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
and optionally depends on 'Protocol Buffers',
 Google's data interchange format, which can be obtained at:
 
   * LICENSE:
@@ -535,7 +536,7 @@ Google's data interchange format, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/protobuf
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Bouncy 
Castle Crypto APIs' to generate
 a temporary self-signed X.509 certificate when the JVM does not provide the
 equivalent functionality.  It can be obtained at:
 
@@ -544,7 +545,7 @@ equivalent functionality.  It can be obtained at:
   * HOMEPAGE:
     * http://www.bouncycastle.org/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Snappy', a 
compression library produced
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Snappy', 
a compression library produced
 by Google Inc, which can be obtained at:
 
   * LICENSE:
@@ -552,7 +553,7 @@ by Google Inc, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/snappy
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'JBoss 
Marshalling', an alternative Java
 serialization API, which can be obtained at:
 
   * LICENSE:
@@ -560,7 +561,7 @@ serialization API, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/jboss-remoting/jboss-marshalling
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Caliper', 
Google's micro-
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 
'Caliper', Google's micro-
 benchmarking framework, which can be obtained at:
 
   * LICENSE:
@@ -568,7 +569,7 @@ benchmarking framework, which can be obtained at:
   * HOMEPAGE:
     * https://github.com/google/caliper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Commons Logging', a logging
 framework, which can be obtained at:
 
   * LICENSE:
@@ -576,7 +577,7 @@ framework, which can be obtained at:
   * HOMEPAGE:
     * http://commons.apache.org/logging/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Apache 
Log4J', a logging framework, which
 can be obtained at:
 
   * LICENSE:
@@ -584,7 +585,7 @@ can be obtained at:
   * HOMEPAGE:
     * http://logging.apache.org/log4j/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar optionally depends on 'Aalto XML', 
an ultra-high performance
+lib/io.netty-netty-codec-base-4.2.12.Final.jar optionally depends on 'Aalto 
XML', an ultra-high performance
 non-blocking XML processor, which can be obtained at:
 
   * LICENSE:
@@ -592,7 +593,7 @@ non-blocking XML processor, which can be obtained at:
   * HOMEPAGE:
     * http://wiki.fasterxml.com/AaltoHome
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Twitter. It can be obtained at:
 
   * LICENSE:
@@ -600,7 +601,7 @@ the HTTP/2 HPACK algorithm written by Twitter. It can be 
obtained at:
   * HOMEPAGE:
     * https://github.com/twitter/hpack
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Cory Benfield. It can be obtained at:
 
   * LICENSE:
@@ -608,7 +609,7 @@ the HTTP/2 HPACK algorithm written by Cory Benfield. It can 
be obtained at:
   * HOMEPAGE:
     * https://github.com/python-hyper/hpack/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified version of 
'HPACK', a Java implementation of
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified version of 
'HPACK', a Java implementation of
 the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. It can be obtained 
at:
 
   * LICENSE:
@@ -616,7 +617,7 @@ the HTTP/2 HPACK algorithm written by Tatsuhiro Tsujikawa. 
It can be obtained at
   * HOMEPAGE:
     * https://github.com/nghttp2/nghttp2/
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains a modified portion of 
'Apache Commons Lang', a Java library
 provides utilities for the java.lang API, which can be obtained at:
 
   * LICENSE:
@@ -625,7 +626,7 @@ provides utilities for the java.lang API, which can be 
obtained at:
     * https://commons.apache.org/proper/commons-lang/
 
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the Maven wrapper scripts 
from 'Maven Wrapper',
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the Maven wrapper 
scripts from 'Maven Wrapper',
 that provides an easy way to ensure a user has everything necessary to run the 
Maven build.
 
   * LICENSE:
@@ -633,7 +634,7 @@ that provides an easy way to ensure a user has everything 
necessary to run the M
   * HOMEPAGE:
     * https://github.com/takari/maven-wrapper
 
-lib/io.netty-netty-codec-4.1.130.Final.jar contains the dnsinfo.h header file,
+lib/io.netty-netty-codec-base-4.2.12.Final.jar contains the dnsinfo.h header 
file,
 that provides a way to retrieve the system DNS configuration on MacOS.
 This private header is also used by Apple's open source
  mDNSResponder (https://opensource.apple.com/tarballs/mDNSResponder/).
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
index dff8a63857..372fed056a 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-all.bin.txt
@@ -23,31 +23,33 @@ LongAdder), which was released with the following comments:
     http://creativecommons.org/publicdomain/zero/1.0/
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.130.Final.jar
-- lib/io.netty-netty-codec-4.1.130.Final.jar
-- lib/io.netty-netty-codec-dns-4.1.130.Final.jar
-- lib/io.netty-netty-codec-http-4.1.130.Final.jar
-- lib/io.netty-netty-codec-http2-4.1.130.Final.jar
-- lib/io.netty-netty-codec-socks-4.1.130.Final.jar
-- lib/io.netty-netty-common-4.1.130.Final.jar
-- lib/io.netty-netty-handler-4.1.130.Final.jar
-- lib/io.netty-netty-handler-proxy-4.1.130.Final.jar
-- lib/io.netty-netty-resolver-4.1.130.Final.jar
-- lib/io.netty-netty-resolver-dns-4.1.130.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar
-- lib/io.netty-netty-transport-4.1.130.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar
+- lib/io.netty-netty-buffer-4.2.12.Final.jar
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar
+- lib/io.netty-netty-codec-compression-4.2.12.Final.jar
+- lib/io.netty-netty-codec-dns-4.2.12.Final.jar
+- lib/io.netty-netty-codec-http-4.2.12.Final.jar
+- lib/io.netty-netty-codec-http2-4.2.12.Final.jar
+- lib/io.netty-netty-codec-socks-4.2.12.Final.jar
+- lib/io.netty-netty-common-4.2.12.Final.jar
+- lib/io.netty-netty-handler-4.2.12.Final.jar
+- lib/io.netty-netty-handler-proxy-4.2.12.Final.jar
+- lib/io.netty-netty-resolver-4.2.12.Final.jar
+- lib/io.netty-netty-resolver-dns-4.2.12.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar
+- lib/io.netty-netty-transport-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar
 
 
                             The Netty Project
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
index 3370e8e6ff..60ce46779e 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-bkctl.bin.txt
@@ -5,25 +5,26 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.130.Final.jar
-- lib/io.netty-netty-codec-4.1.130.Final.jar
-- lib/io.netty-netty-common-4.1.130.Final.jar
-- lib/io.netty-netty-handler-4.1.130.Final.jar
-- lib/io.netty-netty-resolver-4.1.130.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar
-- lib/io.netty-netty-transport-4.1.130.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar
+- lib/io.netty-netty-buffer-4.2.12.Final.jar
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar
+- lib/io.netty-netty-common-4.2.12.Final.jar
+- lib/io.netty-netty-handler-4.2.12.Final.jar
+- lib/io.netty-netty-resolver-4.2.12.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar
+- lib/io.netty-netty-transport-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar
 
 
                             The Netty Project
diff --git a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt 
b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
index 9bc566af3d..bfbf9dd04e 100644
--- a/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
+++ b/bookkeeper-dist/src/main/resources/NOTICE-server.bin.txt
@@ -5,31 +5,33 @@ This product includes software developed at
 The Apache Software Foundation (http://www.apache.org/).
 
 
------------------------------------------------------------------------------------
-- lib/io.netty-netty-buffer-4.1.130.Final.jar
-- lib/io.netty-netty-codec-4.1.130.Final.jar
-- lib/io.netty-netty-codec-dns-4.1.130.Final.jar
-- lib/io.netty-netty-codec-http-4.1.130.Final.jar
-- lib/io.netty-netty-codec-http2-4.1.130.Final.jar
-- lib/io.netty-netty-codec-socks-4.1.130.Final.jar
-- lib/io.netty-netty-common-4.1.130.Final.jar
-- lib/io.netty-netty-handler-4.1.130.Final.jar
-- lib/io.netty-netty-handler-proxy-4.1.130.Final.jar
-- lib/io.netty-netty-resolver-4.1.130.Final.jar
-- lib/io.netty-netty-resolver-dns-4.1.130.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final.jar
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-linux-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-aarch_64.jar 
[11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-osx-x86_64.jar [11]
-- lib/io.netty-netty-tcnative-boringssl-static-2.0.74.Final-windows-x86_64.jar 
[11]
-- lib/io.netty-netty-tcnative-classes-2.0.74.Final.jar
-- lib/io.netty-netty-transport-4.1.130.Final.jar
-- lib/io.netty-netty-transport-classes-epoll-4.1.130.Final.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-epoll-4.1.130.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-x86_64.jar
-- 
lib/io.netty.incubator-netty-incubator-transport-native-io_uring-0.0.26.Final-linux-aarch_64.jar
-- lib/io.netty-netty-transport-native-unix-common-4.1.130.Final.jar
+- lib/io.netty-netty-buffer-4.2.12.Final.jar
+- lib/io.netty-netty-codec-base-4.2.12.Final.jar
+- lib/io.netty-netty-codec-compression-4.2.12.Final.jar
+- lib/io.netty-netty-codec-dns-4.2.12.Final.jar
+- lib/io.netty-netty-codec-http-4.2.12.Final.jar
+- lib/io.netty-netty-codec-http2-4.2.12.Final.jar
+- lib/io.netty-netty-codec-socks-4.2.12.Final.jar
+- lib/io.netty-netty-common-4.2.12.Final.jar
+- lib/io.netty-netty-handler-4.2.12.Final.jar
+- lib/io.netty-netty-handler-proxy-4.2.12.Final.jar
+- lib/io.netty-netty-resolver-4.2.12.Final.jar
+- lib/io.netty-netty-resolver-dns-4.2.12.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final.jar
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-linux-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-aarch_64.jar 
[11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-osx-x86_64.jar [11]
+- lib/io.netty-netty-tcnative-boringssl-static-2.0.75.Final-windows-x86_64.jar 
[11]
+- lib/io.netty-netty-tcnative-classes-2.0.75.Final.jar
+- lib/io.netty-netty-transport-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-epoll-4.2.12.Final.jar
+- lib/io.netty-netty-transport-classes-io_uring-4.2.12.Final.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-epoll-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-x86_64.jar
+- lib/io.netty-netty-transport-native-io_uring-4.2.12.Final-linux-aarch_64.jar
+- lib/io.netty-netty-transport-native-unix-common-4.2.12.Final.jar
 
 
                             The Netty Project
diff --git a/bookkeeper-server/pom.xml b/bookkeeper-server/pom.xml
index 3f5de43b1a..da482b9c5a 100644
--- a/bookkeeper-server/pom.xml
+++ b/bookkeeper-server/pom.xml
@@ -78,6 +78,10 @@
       <groupId>io.netty</groupId>
       <artifactId>netty-handler</artifactId>
     </dependency>
+    <dependency>
+      <groupId>io.netty</groupId>
+      <artifactId>netty-transport-classes-epoll</artifactId>
+    </dependency>
     <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport-native-epoll</artifactId>
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieNettyServer.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieNettyServer.java
index 98fe6c613f..0bd8e9a179 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieNettyServer.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/BookieNettyServer.java
@@ -48,11 +48,10 @@ import io.netty.channel.local.LocalChannel;
 import io.netty.channel.local.LocalServerChannel;
 import io.netty.channel.socket.SocketChannel;
 import io.netty.channel.socket.nio.NioServerSocketChannel;
+import io.netty.channel.uring.IoUringServerSocketChannel;
 import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
 import io.netty.handler.flush.FlushConsolidationHandler;
 import io.netty.handler.ssl.SslHandler;
-import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
-import io.netty.incubator.channel.uring.IOUringServerSocketChannel;
 import io.netty.util.concurrent.DefaultThreadFactory;
 import java.io.IOException;
 import java.net.InetSocketAddress;
@@ -324,8 +323,8 @@ class BookieNettyServer {
             bootstrap.childOption(ChannelOption.WRITE_BUFFER_WATER_MARK, new 
WriteBufferWaterMark(
                     conf.getServerWriteBufferLowWaterMark(), 
conf.getServerWriteBufferHighWaterMark()));
 
-            if (eventLoopGroup instanceof IOUringEventLoopGroup){
-                bootstrap.channel(IOUringServerSocketChannel.class);
+            if (EventLoopUtil.isIoUringGroup(eventLoopGroup)) {
+                bootstrap.channel(IoUringServerSocketChannel.class);
             } else if (eventLoopGroup instanceof EpollEventLoopGroup) {
                 bootstrap.channel(EpollServerSocketChannel.class);
             } else {
@@ -394,8 +393,8 @@ class BookieNettyServer {
 
             if (jvmEventLoopGroup instanceof DefaultEventLoopGroup) {
                 jvmBootstrap.channel(LocalServerChannel.class);
-            } else if (jvmEventLoopGroup instanceof IOUringEventLoopGroup) {
-                jvmBootstrap.channel(IOUringServerSocketChannel.class);
+            } else if (EventLoopUtil.isIoUringGroup(jvmEventLoopGroup)) {
+                jvmBootstrap.channel(IoUringServerSocketChannel.class);
             } else if (jvmEventLoopGroup instanceof EpollEventLoopGroup) {
                 jvmBootstrap.channel(EpollServerSocketChannel.class);
             } else {
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
index 892306797e..75f6f5bb71 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/proto/PerChannelBookieClient.java
@@ -46,15 +46,14 @@ import io.netty.channel.local.LocalAddress;
 import io.netty.channel.local.LocalChannel;
 import io.netty.channel.socket.nio.NioSocketChannel;
 import io.netty.channel.unix.Errors.NativeIoException;
+import io.netty.channel.uring.IoUringChannelOption;
+import io.netty.channel.uring.IoUringSocketChannel;
 import io.netty.handler.codec.CorruptedFrameException;
 import io.netty.handler.codec.DecoderException;
 import io.netty.handler.codec.LengthFieldBasedFrameDecoder;
 import io.netty.handler.codec.TooLongFrameException;
 import io.netty.handler.flush.FlushConsolidationHandler;
 import io.netty.handler.ssl.SslHandler;
-import io.netty.incubator.channel.uring.IOUringChannelOption;
-import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
-import io.netty.incubator.channel.uring.IOUringSocketChannel;
 import io.netty.util.Recycler;
 import io.netty.util.Recycler.Handle;
 import io.netty.util.ReferenceCounted;
@@ -128,6 +127,7 @@ import org.apache.bookkeeper.tls.SecurityException;
 import org.apache.bookkeeper.tls.SecurityHandlerFactory;
 import org.apache.bookkeeper.tls.SecurityHandlerFactory.NodeType;
 import org.apache.bookkeeper.util.ByteBufList;
+import org.apache.bookkeeper.util.EventLoopUtil;
 import org.apache.bookkeeper.util.StringUtils;
 import org.apache.bookkeeper.util.collections.ConcurrentOpenHashMap;
 import org.apache.bookkeeper.util.collections.SynchronizedHashMultiMap;
@@ -532,10 +532,10 @@ public class PerChannelBookieClient extends 
ChannelInboundHandlerAdapter {
         // Set up the ClientBootStrap so we can create a new Channel 
connection to the bookie.
         Bootstrap bootstrap = new Bootstrap();
         bootstrap.group(eventLoopGroup);
-        if (eventLoopGroup instanceof IOUringEventLoopGroup) {
-            bootstrap.channel(IOUringSocketChannel.class);
+        if (EventLoopUtil.isIoUringGroup(eventLoopGroup)) {
+            bootstrap.channel(IoUringSocketChannel.class);
             try {
-                bootstrap.option(IOUringChannelOption.TCP_USER_TIMEOUT, 
conf.getTcpUserTimeoutMillis());
+                bootstrap.option(IoUringChannelOption.TCP_USER_TIMEOUT, 
conf.getTcpUserTimeoutMillis());
             } catch (NoSuchElementException e) {
                 // Property not set, so keeping default value.
             }
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
index 7570436b95..1ba2581f10 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/tls/TLSContextFactory.java
@@ -541,12 +541,17 @@ public class TLSContextFactory implements 
SecurityHandlerFactory {
             log.debug("Enabled cipher suites: {} ", 
Arrays.toString(sslHandler.engine().getEnabledCipherSuites()));
         }
 
-        if (type == NodeType.Client && ((ClientConfiguration) 
config).getHostnameVerificationEnabled()) {
+        if (type == NodeType.Client) {
+            // Netty 4.2 enables HTTPS endpoint identification by default on 
the client side. Honor the
+            // BookKeeper configuration by explicitly setting the algorithm 
(or clearing it when disabled).
             SSLParameters sslParameters = 
sslHandler.engine().getSSLParameters();
-            sslParameters.setEndpointIdentificationAlgorithm("HTTPS");
+            boolean hostnameVerificationEnabled =
+                    ((ClientConfiguration) 
config).getHostnameVerificationEnabled();
+            
sslParameters.setEndpointIdentificationAlgorithm(hostnameVerificationEnabled ? 
"HTTPS" : null);
             sslHandler.engine().setSSLParameters(sslParameters);
             if (log.isDebugEnabled()) {
-                log.debug("Enabled endpointIdentificationAlgorithm: HTTPS");
+                log.debug("endpointIdentificationAlgorithm: {}",
+                        hostnameVerificationEnabled ? "HTTPS" : "disabled");
             }
         }
 
diff --git 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EventLoopUtil.java 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EventLoopUtil.java
index 3937454957..6e960eeb6e 100644
--- 
a/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EventLoopUtil.java
+++ 
b/bookkeeper-server/src/main/java/org/apache/bookkeeper/util/EventLoopUtil.java
@@ -18,11 +18,12 @@
 package org.apache.bookkeeper.util;
 
 import io.netty.channel.EventLoopGroup;
+import io.netty.channel.MultiThreadIoEventLoopGroup;
 import io.netty.channel.SelectStrategy;
 import io.netty.channel.epoll.EpollEventLoopGroup;
 import io.netty.channel.nio.NioEventLoopGroup;
-import io.netty.incubator.channel.uring.IOUring;
-import io.netty.incubator.channel.uring.IOUringEventLoopGroup;
+import io.netty.channel.uring.IoUring;
+import io.netty.channel.uring.IoUringIoHandler;
 import java.util.concurrent.ThreadFactory;
 import lombok.experimental.UtilityClass;
 import lombok.extern.slf4j.Slf4j;
@@ -65,9 +66,9 @@ public class EventLoopUtil {
         // By default, io_uring will not be enabled, even if available. The 
environment variable will be used:
         // enable.io_uring=1
         if (StringUtils.equalsAnyIgnoreCase(enableIoUring, "1", "true")) {
-            // Throw exception if IOUring cannot be used
-            IOUring.ensureAvailability();
-            return new IOUringEventLoopGroup(numThreads, threadFactory);
+            // Throw exception if io_uring cannot be used
+            IoUring.ensureAvailability();
+            return new MultiThreadIoEventLoopGroup(numThreads, threadFactory, 
IoUringIoHandler.newFactory());
         } else {
             try {
                 if (!enableBusyWait) {
@@ -99,4 +100,9 @@ public class EventLoopUtil {
             }
         }
     }
+
+    public static boolean isIoUringGroup(EventLoopGroup group) {
+        return group instanceof MultiThreadIoEventLoopGroup
+                && ((MultiThreadIoEventLoopGroup) 
group).isIoType(IoUringIoHandler.class);
+    }
 }
diff --git 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
index 4f719ddfc0..ba75e4b75a 100644
--- 
a/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
+++ 
b/bookkeeper-server/src/test/java/org/apache/bookkeeper/proto/BookieProtoEncodingTest.java
@@ -138,13 +138,18 @@ public class BookieProtoEncodingTest {
         RequestEnDeCoderPreV3 v2ReqEncoder = new 
RequestEnDeCoderPreV3(registry);
         BookieProtocol.BatchedReadRequest req = 
BookieProtocol.BatchedReadRequest.create(
                 BookieProtocol.CURRENT_PROTOCOL_VERSION, 1L, 1L, FLAG_NONE, 
null, 1L, 10, 1024L);
+        // Capture expected values before encode() recycles the request.
+        long expectedLedgerId = req.ledgerId;
+        long expectedEntryId = req.entryId;
+        long expectedMaxSize = req.maxSize;
+        int expectedMaxCount = req.maxCount;
         ByteBuf buf = (ByteBuf) v2ReqEncoder.encode(req, 
UnpooledByteBufAllocator.DEFAULT);
         buf.readInt(); // Skip the frame size.
         BookieProtocol.BatchedReadRequest reqDecoded = 
(BookieProtocol.BatchedReadRequest) v2ReqEncoder.decode(buf);
-        assertEquals(req.ledgerId, reqDecoded.ledgerId);
-        assertEquals(req.entryId, reqDecoded.entryId);
-        assertEquals(req.maxSize, reqDecoded.maxSize);
-        assertEquals(req.maxCount, reqDecoded.maxCount);
+        assertEquals(expectedLedgerId, reqDecoded.ledgerId);
+        assertEquals(expectedEntryId, reqDecoded.entryId);
+        assertEquals(expectedMaxSize, reqDecoded.maxSize);
+        assertEquals(expectedMaxCount, reqDecoded.maxCount);
         reqDecoded.recycle();
     }
 
@@ -156,13 +161,18 @@ public class BookieProtoEncodingTest {
         ByteBufList data = ByteBufList.get(first, second);
         BookieProtocol.BatchedReadResponse res = new 
BookieProtocol.BatchedReadResponse(
                 BookieProtocol.CURRENT_PROTOCOL_VERSION, 1, 1L, 1L, 1L, data);
+        // Capture expected values before encode() releases the underlying 
data.
+        long expectedLedgerId = res.ledgerId;
+        long expectedEntryId = res.entryId;
+        int expectedDataSize = res.getData().size();
+        int expectedReadableBytes = res.getData().readableBytes();
         ByteBuf buf = (ByteBuf) v2ReqEncoder.encode(res, 
UnpooledByteBufAllocator.DEFAULT);
         buf.readInt(); // Skip the frame size.
         BookieProtocol.BatchedReadResponse resDecoded = 
(BookieProtocol.BatchedReadResponse) v2ReqEncoder.decode(buf);
-        assertEquals(res.ledgerId, resDecoded.ledgerId);
-        assertEquals(res.entryId, resDecoded.entryId);
-        assertEquals(res.getData().size(), resDecoded.getData().size());
-        assertEquals(res.getData().readableBytes(), 
resDecoded.getData().readableBytes());
+        assertEquals(expectedLedgerId, resDecoded.ledgerId);
+        assertEquals(expectedEntryId, resDecoded.entryId);
+        assertEquals(expectedDataSize, resDecoded.getData().size());
+        assertEquals(expectedReadableBytes, 
resDecoded.getData().readableBytes());
     }
 
 }
diff --git a/pom.xml b/pom.xml
index a3ba5c7f3d..29d3d24be8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -180,8 +180,7 @@
     <log4j.version>2.23.1</log4j.version>
     <lz4-java.version>1.10.2</lz4-java.version>
     <mockito.version>4.11.0</mockito.version>
-    <netty.version>4.1.130.Final</netty.version>
-    <netty-iouring.version>0.0.26.Final</netty-iouring.version>
+    <netty.version>4.2.12.Final</netty.version>
     <prometheus.version>0.15.0</prometheus.version>
     <datasketches.version>0.8.3</datasketches.version>
     <httpclient.version>4.5.13</httpclient.version>
@@ -426,28 +425,6 @@
         <type>pom</type>
         <scope>import</scope>
       </dependency>
-      <dependency>
-        <groupId>io.netty.incubator</groupId>
-        <artifactId>netty-incubator-transport-native-io_uring</artifactId>
-        <version>${netty-iouring.version}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.netty.incubator</groupId>
-        <artifactId>netty-incubator-transport-native-io_uring</artifactId>
-        <version>${netty-iouring.version}</version>
-        <classifier>linux-x86_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.netty.incubator</groupId>
-        <artifactId>netty-incubator-transport-native-io_uring</artifactId>
-        <version>${netty-iouring.version}</version>
-        <classifier>linux-aarch_64</classifier>
-      </dependency>
-      <dependency>
-        <groupId>io.netty.incubator</groupId>
-        <artifactId>netty-incubator-transport-classes-io_uring</artifactId>
-        <version>${netty-iouring.version}</version>
-      </dependency>
 
       <!-- grpc dependencies -->
       <dependency>

Reply via email to