[teiid-issues] [JBoss JIRA] (TEIID-5433) Cassandra resource adapter broken due to incompatible Guava version

Steven Hawkins (JIRA) issues at jboss.org
Thu Jul 26 11:09:00 EDT 2018


    [ https://issues.jboss.org/browse/TEIID-5433?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13611164#comment-13611164 ] 

Steven Hawkins commented on TEIID-5433:
---------------------------------------

This appears to have come in Teiid 10 with the wildfly upgrade:  https://issues.jboss.org/browse/TEIID-5002

This was captured in the cassandra community as https://datastax-oss.atlassian.net/browse/JAVA-1328

In 3.2+ of their driver there is a compatibility class: https://github.com/datastax/java-driver/blob/3.2.x/driver-core/src/main/java/com/datastax/driver/core/GuavaCompatibility.java

It appears that the nominal dependency version remains 19 though.  I'll address this upstream by updating to a 3.2+ cassandra client (whatever is still backwards compatible) then add an explicit dependency to guava 19 if needed.


> Cassandra resource adapter broken due to incompatible Guava version
> -------------------------------------------------------------------
>
>                 Key: TEIID-5433
>                 URL: https://issues.jboss.org/browse/TEIID-5433
>             Project: Teiid
>          Issue Type: Bug
>          Components: Misc. Connectors
>    Affects Versions: 10.2.1
>            Reporter: Jan Martiska
>            Assignee: Steven Hawkins
>            Priority: Blocker
>
> We are using Cassandra driver 3.1.3, which normally has a dependency on Guava 16 (see https://github.com/datastax/java-driver/blob/3.1.3/pom.xml#L53), but in the Teiid distribution, there is Guava 20, which doesn't seem very backward compatible - the Cassandra driver doesn't work because it is missing a Guava class:
> {noformat}
> [mppr] 05:51:34,702 WARN  [org.jboss.jca.core.connectionmanager.pool.strategy.OnePool] (Worker1_QueryProcessorQueue797) JTxNEwL2Xd29 IJ000604: Throwable while attempting to get a new connection: null: java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureFallback
> [mppr] 	at org.teiid.resource.adapter.cassandra.CassandraConnectionImpl.<init>(CassandraConnectionImpl.java:51)
> [mppr] 	at org.teiid.resource.adapter.cassandra.CassandraManagedConnectionFactory$1.getConnection(CassandraManagedConnectionFactory.java:44)
> [mppr] 	at org.teiid.resource.adapter.cassandra.CassandraManagedConnectionFactory$1.getConnection(CassandraManagedConnectionFactory.java:41)
> [mppr] 	at org.teiid.resource.spi.BasicManagedConnectionFactory.createManagedConnection(BasicManagedConnectionFactory.java:67)
> [mppr] 	at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.createConnectionEventListener(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:1327)
> [mppr] 	at org.jboss.jca.core.connectionmanager.pool.mcp.SemaphoreConcurrentLinkedDequeManagedConnectionPool.getConnection(SemaphoreConcurrentLinkedDequeManagedConnectionPool.java:499)
> [mppr] 	at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getSimpleConnection(AbstractPool.java:632)
> [mppr] 	at org.jboss.jca.core.connectionmanager.pool.AbstractPool.getConnection(AbstractPool.java:604)
> [mppr] 	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:624)
> [mppr] 	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.getManagedConnection(AbstractConnectionManager.java:597)
> [mppr] 	at org.jboss.jca.core.connectionmanager.AbstractConnectionManager.allocateConnection(AbstractConnectionManager.java:789)
> [mppr] 	at org.teiid.resource.spi.WrappedConnectionFactory.getConnection(WrappedConnectionFactory.java:54)
> [mppr] 	at org.teiid.translator.ExecutionFactory.getConnection(ExecutionFactory.java:180)
> [mppr] 	at org.teiid.translator.ExecutionFactory.getConnection(ExecutionFactory.java:201)
> [mppr] 	at org.teiid.dqp.internal.datamgr.ConnectorManager.buildCapabilities(ConnectorManager.java:177)
> [mppr] 	at org.teiid.dqp.internal.datamgr.ConnectorManager.getCapabilities(ConnectorManager.java:161)
> [mppr] 	at org.teiid.dqp.internal.process.CachedFinder.findCapabilities(CachedFinder.java:104)
> [mppr] 	at org.teiid.query.metadata.TempCapabilitiesFinder.findCapabilities(TempCapabilitiesFinder.java:77)
> [mppr] 	at org.teiid.query.optimizer.relational.rules.CapabilitiesUtil.getCapabilities(CapabilitiesUtil.java:449)
> [mppr] 	at org.teiid.query.optimizer.relational.rules.CapabilitiesUtil.supports(CapabilitiesUtil.java:469)
> [mppr] 	at org.teiid.query.optimizer.relational.rules.CapabilitiesUtil.requiresCriteria(CapabilitiesUtil.java:454)
> [mppr] 	at org.teiid.query.optimizer.relational.rules.RulePlaceAccess.addAccessNode(RulePlaceAccess.java:197)
> [mppr] 	at org.teiid.query.optimizer.relational.rules.RulePlaceAccess.execute(RulePlaceAccess.java:82)
> [mppr] 	at org.teiid.query.optimizer.relational.RelationalPlanner.executeRules(RelationalPlanner.java:1025)
> [mppr] 	at org.teiid.query.optimizer.relational.RelationalPlanner.optimize(RelationalPlanner.java:228)
> [mppr] 	at org.teiid.query.optimizer.QueryOptimizer.optimizePlan(QueryOptimizer.java:179)
> [mppr] 	at org.teiid.dqp.internal.process.Request.generatePlan(Request.java:458)
> [mppr] 	at org.teiid.dqp.internal.process.Request.processRequest(Request.java:486)
> [mppr] 	at org.teiid.dqp.internal.process.RequestWorkItem.processNew(RequestWorkItem.java:660)
> [mppr] 	at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:339)
> [mppr] 	at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:47)
> [mppr] 	at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:276)
> [mppr] 	at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:277)
> [mppr] 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:115)
> [mppr] 	at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:206)
> [mppr] 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [mppr] 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [mppr] 	at java.lang.Thread.run(Thread.java:748)
> [mppr] Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.FutureFallback from [Module "com.datastax.cassandra.driver.core" from local module loader @3834d63f (finder: local module finder @1ae369b7 (roots: /home/jmartisk/Workspace/jbossqe-whipper-tests/whipper-tests/../server-working-directory/modules,/home/jmartisk/Workspace/jbossqe-whipper-tests/whipper-tests/../server-working-directory/modules/system/layers/dv,/home/jmartisk/Workspace/jbossqe-whipper-tests/whipper-tests/../server-working-directory/modules/system/layers/base))]
> [mppr] 	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:198)
> [mppr] 	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:412)
> [mppr] 	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:400)
> [mppr] 	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:116)
> [mppr] 	... 38 more
> {noformat}
> Perhaps we should include Guava 16 in a module as well and adjust the dependencies?



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the teiid-issues mailing list