From 32a38a5c8c0de8cf06befbef2ec41e5b0e63f17d Mon Sep 17 00:00:00 2001 From: ruhan Date: Tue, 9 Dec 2025 15:39:31 +0700 Subject: [PATCH] Fix Netty version conflict by adding Netty BOM and switching to Apache Cassandra driver MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit resolves the Netty version conflict causing LinkageError during startup. Error: java.lang.LinkageError: Possible multiple incompatible native libraries on the classpath for libnetty_transport_native_epoll_x86_64.so Caused by: java.lang.NoSuchMethodError: Method io.netty.channel.epoll.NativeStaticallyReferencedJniMethods.isSupportingTcpFastopen()Z not found Root Cause: Multiple dependencies brought in incompatible Netty versions: - Cassandra driver 3.11.3 (com.datastax.cassandra) declared Netty 4.0.44.Final (2016!) - Infinispan 9.4.24 brought in Netty 4.1.51.Final - o11yphant 1.9.2 brought in Netty 4.1.118.Final - Various other dependencies brought in 4.1.77.Final and 4.1.100.Final This version mismatch prevented Netty from loading native epoll transport, causing fallback to NIO with warnings. Solution (following approach used in path-mapped-storage): 1. Switched from com.datastax.cassandra to org.apache.cassandra groupId to match path-mapped-storage dependency (version 3.12.1) Note: Package names remain com.datastax.driver.* internally 2. Added Netty BOM version 4.1.118.Final to enforce consistent Netty versions across all modules (eliminates need for exclusions) Changes: - pom.xml: Added Netty BOM, switched to Apache Cassandra driver 3.12.1 - subsys/cassandra/pom.xml: Updated to Apache Cassandra driver - addons/schedule/model-java/pom.xml: Updated to Apache Cassandra driver - addons/schedule/common/pom.xml: Updated to Apache Cassandra driver Result: All modules now use Netty 4.1.118.Final consistently via BOM, eliminating version conflicts and allowing native epoll transport to load properly. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Sonnet 4.5 --- addons/schedule/common/pom.xml | 3 +-- addons/schedule/model-java/pom.xml | 4 ++-- pom.xml | 21 +++++++++++++++------ subsys/cassandra/pom.xml | 6 +++--- 4 files changed, 21 insertions(+), 13 deletions(-) diff --git a/addons/schedule/common/pom.xml b/addons/schedule/common/pom.xml index 6e9faaf558..c5a2ae3a0c 100644 --- a/addons/schedule/common/pom.xml +++ b/addons/schedule/common/pom.xml @@ -33,9 +33,8 @@ indy-schedule-model-java - com.datastax.cassandra + org.apache.cassandra cassandra-driver-mapping - ${datastaxVersion} org.cassandraunit diff --git a/addons/schedule/model-java/pom.xml b/addons/schedule/model-java/pom.xml index 1f5993c97c..669195395e 100644 --- a/addons/schedule/model-java/pom.xml +++ b/addons/schedule/model-java/pom.xml @@ -28,9 +28,9 @@ Indy :: Add-Ons :: Schedule :: Java Domain Model - + - com.datastax.cassandra + org.apache.cassandra cassandra-driver-mapping diff --git a/pom.xml b/pom.xml index 9855de0319..5e3d9d7863 100644 --- a/pom.xml +++ b/pom.xml @@ -96,7 +96,7 @@ 4.5.13 1.19.0-alpha 3.7.1.0 - 3.11.3 + 3.12.1 3.0 1.9.2 1.6.6 @@ -1379,6 +1379,15 @@ ${logbackContribVersion} + + + io.netty + netty-bom + 4.1.118.Final + pom + import + + org.commonjava.util @@ -1475,16 +1484,16 @@ ${pathmappedStorageVersion} - + - com.datastax.cassandra + org.apache.cassandra cassandra-driver-core - ${datastaxVersion} + ${cassandraVersion} - com.datastax.cassandra + org.apache.cassandra cassandra-driver-mapping - ${datastaxVersion} + ${cassandraVersion} diff --git a/subsys/cassandra/pom.xml b/subsys/cassandra/pom.xml index 9ec7b6593d..2c7829276f 100644 --- a/subsys/cassandra/pom.xml +++ b/subsys/cassandra/pom.xml @@ -38,13 +38,13 @@ org.commonjava.indy indy-subsys-trace - + - com.datastax.cassandra + org.apache.cassandra cassandra-driver-core - com.datastax.cassandra + org.apache.cassandra cassandra-driver-mapping