datastax / cassandra-quarkus

An Apache Cassandra(R) extension for Quarkus
Apache License 2.0
39 stars 28 forks source link

ClassNotFoundException when com.datastax.oss:java-driver-mapper-runtime is not in the class path #178

Closed ppalaga closed 3 years ago

ppalaga commented 3 years ago

As of 1.1.0-rc1, CassandraClientProcessor.registerMutinyResultProducerService() throws a ClassNotFoundException when com.datastax.oss:java-driver-mapper-runtime is not in the class path:

  @BuildStep
  ServiceProviderBuildItem registerMutinyResultProducerService() {
    return new ServiceProviderBuildItem(
        "com.datastax.oss.driver.api.mapper.result.MapperResultProducerService",
        MutinyResultProducerService.class.getName());
  }

The stack trace thrown by camel-quarkus-integration-test-cassandraql:

[INFO] --- quarkus-maven-plugin:2.0.0.CR3:build (quarkus-build) @ camel-quarkus-integration-test-cassandraql ---
[INFO] [org.jboss.threads] JBoss Threads version 3.4.0.Final
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:02 min
[INFO] Finished at: 2021-06-16T18:39:14+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal io.quarkus:quarkus-maven-plugin:2.0.0.CR3:build (quarkus-build) on project camel-quarkus-integration-test-cassandraql: Failed to build quarkus application: io.quarkus.builder.BuildException: Build failure: Build failed due to errors
[ERROR]         [error]: Build step com.datastax.oss.quarkus.deployment.internal.CassandraClientProcessor#registerMutinyResultProducerService threw an exception: java.lang.NoClassDefFoundError: com/datastax/oss/driver/api/mapper/result/MapperResultProducerService
[ERROR]         at java.base/java.lang.ClassLoader.defineClass1(Native Method)
[ERROR]         at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
[ERROR]         at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:437)
[ERROR]         at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:397)
[ERROR]         at com.datastax.oss.quarkus.deployment.internal.CassandraClientProcessor.registerMutinyResultProducerService(CassandraClientProcessor.java:409)
[ERROR]         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[ERROR]         at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[ERROR]         at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[ERROR]         at java.base/java.lang.reflect.Method.invoke(Method.java:566)
[ERROR]         at io.quarkus.deployment.ExtensionLoader$2.execute(ExtensionLoader.java:820)
[ERROR]         at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
[ERROR]         at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
[ERROR]         at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2442)
[ERROR]         at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1450)
[ERROR]         at java.base/java.lang.Thread.run(Thread.java:829)
[ERROR]         at org.jboss.threads.JBossThread.run(JBossThread.java:501)
[ERROR] Caused by: java.lang.ClassNotFoundException: com.datastax.oss.driver.api.mapper.result.MapperResultProducerService
[ERROR]         at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50)
[ERROR]         at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
[ERROR]         at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:247)
[ERROR]         at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
[ERROR]         at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:447)
[ERROR]         at io.quarkus.bootstrap.classloading.QuarkusClassLoader.loadClass(QuarkusClassLoader.java:397)
[ERROR]         ... 16 more

A PR with one possible fix follows.

┆Issue is synchronized with this Jira Task by Unito

adutra commented 3 years ago

@ppalaga 1.1.0-rc2 has been published today.

ppalaga commented 3 years ago

Yes, thanks, already testing with it.