jsevellec / cassandra-unit

Utility tool to load Data into Cassandra to help you writing good isolated JUnit Test into your application
GNU Lesser General Public License v3.0
425 stars 0 forks source link

cassandra-unit not working for libthrift 0.14.0 version #326

Open Joseph-Kuttivelil opened 3 years ago

Joseph-Kuttivelil commented 3 years ago

I am currently using cassandra-unit ver 3.11.2.0 which internally is using libthrift 0.13.0 which works fine. Although a vulnerability was resported for libthrift ver 0.13.0 (https://snyk.io/vuln/SNYK-JAVA-ORGAPACHETHRIFT-1074898) which got fixed in 0.14.0 version. Now on using libthrift ver 0.14.0 we are getting the following error when we try to compile the application.

5:52:42  Exception (java.lang.NoClassDefFoundError) encountered during startup: org/apache/thrift/transport/TFramedTransport$Factory
15:52:42  java.lang.NoClassDefFoundError: org/apache/thrift/transport/TFramedTransport$Factory
15:52:42    at org.apache.cassandra.service.CassandraDaemon.initializeNativeTransport(CassandraDaemon.java:441)
15:52:42    at org.apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.java:429)
15:52:42    at org.apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.java:628)
15:52:42    at org.cassandraunit.utils.EmbeddedCassandraServerHelper.lambda$startEmbeddedCassandra$1(EmbeddedCassandraServerHelper.java:152)
15:52:42    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
15:52:42    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
15:52:42    at java.lang.Thread.run(Thread.java:748)
15:52:42  Caused by: java.lang.ClassNotFoundException: org.apache.thrift.transport.TFramedTransport$Factory
15:52:42    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
15:52:42    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
15:52:42    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
15:52:42    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
15:52:42    ... 7 more

On checking the issue further, we noticed that the package for 'TFramedTransport.Factory' has been changed in libthrift.jar from ' org.apache.thrift.transport' to this 'org.apache.thrift.transport.layered'. Can libthrift 0.14.0 be made compatiable with cassandra-unit?