Skip to content

Commit 9fbb28c

Browse files
ruhan1claude
andauthored
Fix Netty version conflict by adding Netty BOM and switching to Apache Cassandra driver (#2512)
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 <noreply@anthropic.com>
1 parent 19d068d commit 9fbb28c

File tree

4 files changed

+21
-13
lines changed

4 files changed

+21
-13
lines changed

addons/schedule/common/pom.xml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,8 @@
3333
<artifactId>indy-schedule-model-java</artifactId>
3434
</dependency>
3535
<dependency>
36-
<groupId>com.datastax.cassandra</groupId>
36+
<groupId>org.apache.cassandra</groupId>
3737
<artifactId>cassandra-driver-mapping</artifactId>
38-
<version>${datastaxVersion}</version>
3938
</dependency>
4039
<dependency>
4140
<groupId>org.cassandraunit</groupId>

addons/schedule/model-java/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
<name>Indy :: Add-Ons :: Schedule :: Java Domain Model</name>
2929

3030
<dependencies>
31-
<!--Datastax Java Driver-->
31+
<!--Apache Cassandra Java Driver (matches path-mapped-storage)-->
3232
<dependency>
33-
<groupId>com.datastax.cassandra</groupId>
33+
<groupId>org.apache.cassandra</groupId>
3434
<artifactId>cassandra-driver-mapping</artifactId>
3535
</dependency>
3636
</dependencies>

pom.xml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
<httpclientVersion>4.5.13</httpclientVersion>
9797
<otelInstrumentationVersion>1.19.0-alpha</otelInstrumentationVersion>
9898
<cassandraUnitVersion>3.7.1.0</cassandraUnitVersion>
99-
<datastaxVersion>3.11.3</datastaxVersion>
99+
<cassandraVersion>3.12.1</cassandraVersion>
100100
<pathmappedStorageVersion>3.0</pathmappedStorageVersion>
101101
<o11yphantVersion>1.9.2</o11yphantVersion>
102102
<swaggerVersion>1.6.6</swaggerVersion>
@@ -1379,6 +1379,15 @@
13791379
<version>${logbackContribVersion}</version>
13801380
</dependency>
13811381

1382+
<!-- Managing vulnerable versions of netty from cassandra to avoid CVE -->
1383+
<dependency>
1384+
<groupId>io.netty</groupId>
1385+
<artifactId>netty-bom</artifactId>
1386+
<version>4.1.118.Final</version>
1387+
<type>pom</type>
1388+
<scope>import</scope>
1389+
</dependency>
1390+
13821391
<!-- o11yphant dependencies -->
13831392
<dependency>
13841393
<groupId>org.commonjava.util</groupId>
@@ -1475,16 +1484,16 @@
14751484
<version>${pathmappedStorageVersion}</version>
14761485
</dependency>
14771486

1478-
<!--Datastax Java Driver-->
1487+
<!--Apache Cassandra Java Driver (matches path-mapped-storage)-->
14791488
<dependency>
1480-
<groupId>com.datastax.cassandra</groupId>
1489+
<groupId>org.apache.cassandra</groupId>
14811490
<artifactId>cassandra-driver-core</artifactId>
1482-
<version>${datastaxVersion}</version>
1491+
<version>${cassandraVersion}</version>
14831492
</dependency>
14841493
<dependency>
1485-
<groupId>com.datastax.cassandra</groupId>
1494+
<groupId>org.apache.cassandra</groupId>
14861495
<artifactId>cassandra-driver-mapping</artifactId>
1487-
<version>${datastaxVersion}</version>
1496+
<version>${cassandraVersion}</version>
14881497
</dependency>
14891498

14901499
<dependency>

subsys/cassandra/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,13 @@
3838
<groupId>org.commonjava.indy</groupId>
3939
<artifactId>indy-subsys-trace</artifactId>
4040
</dependency>
41-
<!--Datastax Java Driver-->
41+
<!--Apache Cassandra Java Driver (matches path-mapped-storage)-->
4242
<dependency>
43-
<groupId>com.datastax.cassandra</groupId>
43+
<groupId>org.apache.cassandra</groupId>
4444
<artifactId>cassandra-driver-core</artifactId>
4545
</dependency>
4646
<dependency>
47-
<groupId>com.datastax.cassandra</groupId>
47+
<groupId>org.apache.cassandra</groupId>
4848
<artifactId>cassandra-driver-mapping</artifactId>
4949
</dependency>
5050
</dependencies>

0 commit comments

Comments
 (0)