After changing the ModeShape codebase to work around this (which is a classpath visibility issue across modules & layers), the integration use case will not work until the linked BZ (https://bugzilla.redhat.com/show_bug.cgi?id=1231758) is resolved. This is a bug in Hibernate Search (delivered as a core EAP 6.4 component) which has to be fixed in EAP before this integration use case will work.
Note that there is a workaround for the Hibernate Search issue, but it requires Teiid to change its main module descriptor and add either: <module name="org.hibernate.search.engine" /> or <module name="org.modeshape" /> as a dependency. Since Teiid/main already has org.jgroups as a dependency, adding either of the above dependencies to the module descriptor would ensure that in the "effective" classpath chain JGroups would be available to Hibernate Search. I personally consider this a hack though, since the correct solution is for EAP to fix Hibernate Search's module descriptor.
The relevant ModeShape fix (which caused the original exception) has been merged in the DV 6.2 branch: https://github.com/jboss-integration/modeshape/commit/eb79d2766382175ced2f3118b15c9e5c6e5ccf9f For this to be fully fixed however, either: a) EAP has to fix the Hibernate Search issue (see above) b) Teiid has to patch their main module.xml both of which are not controlled by ModeShape.
On DV 6.2.0 ER3 there is different exception thrown when querying. Enclosing example of a query which causes it, but the same happens for all the queries tested: Connected via: "jdbc:teiid:ModeShape@mm://localhost:31000;useJDBC4ColumnNameAndLabelSemantics=false" user:password - user:user Query sent to Modeshape.vdb: "Select * From ddl_addTableConstraintDefinition" Exception thrown: org.teiid.jdbc.TeiidSQLException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 ModeShape: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:135) at org.teiid.jdbc.TeiidSQLException.create(TeiidSQLException.java:71) at org.teiid.jdbc.StatementImpl.postReceiveResults(StatementImpl.java:667) at org.teiid.jdbc.StatementImpl.access$100(StatementImpl.java:63) at org.teiid.jdbc.StatementImpl$2.onCompletion(StatementImpl.java:515) at org.teiid.client.util.ResultsFuture.done(ResultsFuture.java:135) at org.teiid.client.util.ResultsFuture.access$200(ResultsFuture.java:40) at org.teiid.client.util.ResultsFuture$1.receiveResults(ResultsFuture.java:79) at org.teiid.net.socket.SocketServerInstanceImpl.receivedMessage(SocketServerInstanceImpl.java:264) at org.teiid.net.socket.SocketServerInstanceImpl.read(SocketServerInstanceImpl.java:302) at sun.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.teiid.net.socket.SocketServerConnectionFactory$ShutdownHandler.invoke(SocketServerConnectionFactory.java:98) at com.sun.proxy.$Proxy6.read(Unknown Source) at org.teiid.net.socket.SocketServerInstanceImpl$RemoteInvocationHandler$1.get(SocketServerInstanceImpl.java:401) at org.teiid.jdbc.StatementImpl.executeSql(StatementImpl.java:524) at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:1033) at org.teiid.jdbc.StatementImpl.execute(StatementImpl.java:312) at org.jboss.bqt.framework.AbstractQuery.execute(AbstractQuery.java:208) at org.jboss.bqt.client.testcase.ProcessResults.executeTest(ProcessResults.java:280) at org.jboss.bqt.client.testcase.ProcessResults.runTestCase(ProcessResults.java:160) at org.jboss.bqt.client.TestClient.runScenario(TestClient.java:209) at org.jboss.bqt.client.TestClient.runTest(TestClient.java:132) at org.jboss.bqt.client.TestClient.runTest(TestClient.java:113) at org.jboss.qe.bqt.BQTHelper.startTest(BQTHelper.java:59) at org.jboss.dv.test.bqt.Utils.runScenarioTest(Utils.java:197) at org.jboss.dv.test.bqt.TestPassFour.test(TestPassFour.java:150) at sun.reflect.GeneratedMethodAccessor47.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80) at org.testng.internal.Invoker.invokeMethod(Invoker.java:714) at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901) at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231) at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127) at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111) at org.testng.TestRunner.privateRun(TestRunner.java:767) at org.testng.TestRunner.run(TestRunner.java:617) at org.testng.SuiteRunner.runTest(SuiteRunner.java:334) at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329) at org.testng.SuiteRunner.privateRun(SuiteRunner.java:291) at org.testng.SuiteRunner.run(SuiteRunner.java:240) at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52) at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86) at org.testng.TestNG.runSuitesSequentially(TestNG.java:1198) at org.testng.TestNG.runSuitesLocally(TestNG.java:1123) at org.testng.TestNG.run(TestNG.java:1031) at org.apache.maven.surefire.testng.TestNGExecutor.run(TestNGExecutor.java:70) at org.apache.maven.surefire.testng.TestNGDirectoryTestSuite.execute(TestNGDirectoryTestSuite.java:108) at org.apache.maven.surefire.testng.TestNGProvider.invoke(TestNGProvider.java:111) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:164) at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:110) at org.apache.maven.surefire.booter.SurefireStarter.invokeProvider(SurefireStarter.java:172) at org.apache.maven.surefire.booter.SurefireStarter.runSuitesInProcessWhenForked(SurefireStarter.java:104) at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:70) Caused by: org.teiid.core.TeiidProcessingException: TEIID30504 Remote org.teiid.core.TeiidProcessingException: TEIID30504 ModeShape: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.dqp.internal.process.DataTierTupleSource.exceptionOccurred(DataTierTupleSource.java:381) at org.teiid.dqp.internal.process.DataTierTupleSource.nextTuple(DataTierTupleSource.java:154) at org.teiid.query.processor.relational.AccessNode.nextBatchDirect(AccessNode.java:369) at org.teiid.query.processor.relational.RelationalNode.nextBatch(RelationalNode.java:278) at org.teiid.query.processor.relational.RelationalPlan.nextBatch(RelationalPlan.java:136) at org.teiid.query.processor.QueryProcessor.nextBatchDirect(QueryProcessor.java:151) at org.teiid.query.processor.QueryProcessor.nextBatch(QueryProcessor.java:114) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:159) at org.teiid.query.processor.BatchCollector.collectTuples(BatchCollector.java:141) at org.teiid.dqp.internal.process.RequestWorkItem.processMore(RequestWorkItem.java:444) at org.teiid.dqp.internal.process.RequestWorkItem.process(RequestWorkItem.java:326) at org.teiid.dqp.internal.process.AbstractWorkItem.run(AbstractWorkItem.java:51) at org.teiid.dqp.internal.process.RequestWorkItem.run(RequestWorkItem.java:254) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at java.lang.Thread.run(Thread.java:745) Caused by: org.teiid.core.TeiidException: 0 Remote org.teiid.translator.jdbc.JDBCExecutionException: 0 TEIID11008:TEIID11004 Error executing statement(s): [SQL: SELECT g_0."ddl:checkSearchCondition", g_0."ddl:constraintType", g_0."ddl:deferrable", g_0."jcr:name", g_0."jcr:path", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName" FROM "ddl:addTableConstraintDefinition" AS g_0] at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:325) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) at java.util.concurrent.FutureTask.run(FutureTask.java:262) at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) ... 6 more Caused by: java.sql.SQLException: Remote java.sql.SQLException: Error at org.jboss.jca.adapters.jdbc.WrappedConnection.checkException(WrappedConnection.java:1648) at org.jboss.jca.adapters.jdbc.WrappedStatement.checkException(WrappedStatement.java:1267) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:349) at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:119) ... 12 more Caused by: java.lang.NullPointerException: Remote java.lang.NullPointerException: null at org.modeshape.jcr.txn.Transactions$NestableThreadLocalTransaction.cleanup(Transactions.java:413) at org.modeshape.jcr.txn.Transactions$NestableThreadLocalTransaction.rollback(Transactions.java:397) at org.modeshape.jcr.cache.RepositoryCache.runInTransaction(RepositoryCache.java:492) at org.modeshape.jcr.cache.RepositoryCache.workspace(RepositoryCache.java:915) at org.modeshape.jcr.cache.RepositoryCache.getWorkspaceCache(RepositoryCache.java:1148) at org.modeshape.jcr.JcrSession.<init>(JcrSession.java:189) at org.modeshape.jcr.JcrXaSession.<init>(JcrXaSession.java:49) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:699) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:620) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:156) at org.modeshape.jdbc.delegate.LocalSession.getLocalSession(LocalSession.java:74) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.getLocalSession(LocalRepositoryDelegate.java:91) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.execute(LocalRepositoryDelegate.java:139) at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:429) at org.modeshape.jdbc.JcrStatement.executeQuery(JcrStatement.java:479) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:344) ... 13 more
Linked a separate JIRA for tracking this latest problem. The problem is still caused by the Hibernate Search issue, but because of a bug in the ModeShape code the original HibernateSearch exception is hidden.
Added a fix for this latest exception in the DV 6.2 branch.
With DV 6.2.0 ER4 I get yet another exception stack trace when querying ModeShape vdb. query: SELECT * FROM VDBs log: D11004 Error executing statement(s): [SQL: SELECT g_0."jcr:name", g_0."jcr:path", g_0."jcr:primaryType", g_0."jcr:score", g_0."mode:depth", g_0."mode:localName", g_0."mode:sha1", g_0."vdb:description", g_0."vdb:originalFile", g_0."vdb:preview", g_0."vdb:version" FROM "vdb:virtualDatabase" AS g_0] at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:131) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:329) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:298) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:110) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:107) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at java.util.concurrent.FutureTask.run(FutureTask.java:262) [rt.jar:1.7.0_79] at org.teiid.dqp.internal.process.FutureWork.run(FutureWork.java:58) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:274) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210) [teiid-engine-8.7.1.6_2-redhat-4.jar:8.7.1.6_2-redhat-4] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_79] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_79] at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_79] Caused by: java.sql.SQLException: Error while starting 'dv' repository: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:433) at org.modeshape.jdbc.JcrStatement.executeQuery(JcrStatement.java:479) at org.jboss.jca.adapters.jdbc.WrappedStatement.executeQuery(WrappedStatement.java:344) at org.teiid.translator.jdbc.JDBCQueryExecution.execute(JDBCQueryExecution.java:119) ... 12 more Caused by: javax.jcr.RepositoryException: Error while starting 'dv' repository: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:656) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:620) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:156) at org.modeshape.jdbc.delegate.LocalSession.getLocalSession(LocalSession.java:74) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.getLocalSession(LocalRepositoryDelegate.java:91) at org.modeshape.jdbc.delegate.LocalRepositoryDelegate.execute(LocalRepositoryDelegate.java:139) at org.modeshape.jdbc.JcrStatement.execute(JcrStatement.java:429) ... 15 more Caused by: org.modeshape.jcr.cache.WrappedException: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:555) at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:439) at org.modeshape.jcr.cache.RepositoryCache$7.call(RepositoryCache.java:973) at org.modeshape.jcr.cache.RepositoryCache$7.call(RepositoryCache.java:938) at org.modeshape.jcr.cache.RepositoryCache.runInTransaction(RepositoryCache.java:503) at org.modeshape.jcr.cache.RepositoryCache.workspace(RepositoryCache.java:938) at org.modeshape.jcr.cache.RepositoryCache.getWorkspaceCache(RepositoryCache.java:1171) at org.modeshape.jcr.JcrSession.<init>(JcrSession.java:188) at org.modeshape.jcr.JcrRepository$RunningState.loginInternalSession(JcrRepository.java:1841) at org.modeshape.jcr.JcrRepository$RunningState.loginInternalSession(JcrRepository.java:1832) at org.modeshape.jcr.Sequencers.initialize(Sequencers.java:214) at org.modeshape.jcr.JcrRepository$RunningState.completeInitialization(JcrRepository.java:1267) at org.modeshape.jcr.JcrRepository.doStart(JcrRepository.java:407) at org.modeshape.jcr.JcrRepository.login(JcrRepository.java:654) ... 21 more Caused by: java.lang.NoClassDefFoundError: org/jgroups/MessageListener at java.lang.Class.forName0(Native Method) [rt.jar:1.7.0_79] at java.lang.Class.forName(Class.java:274) [rt.jar:1.7.0_79] at org.hibernate.search.util.impl.ClassLoaderHelper.classForName(ClassLoaderHelper.java:315) at org.hibernate.search.util.impl.ClassLoaderHelper.classForName(ClassLoaderHelper.java:282) at org.hibernate.search.engine.impl.StandardServiceManager.listAndInstantiateServiceProviders(StandardServiceManager.java:82) at org.hibernate.search.engine.impl.StandardServiceManager.<init>(StandardServiceManager.java:65) at org.hibernate.search.spi.SearchFactoryBuilder.createCleanFactoryState(SearchFactoryBuilder.java:296) at org.hibernate.search.spi.SearchFactoryBuilder.buildNewSearchFactory(SearchFactoryBuilder.java:204) at org.hibernate.search.spi.SearchFactoryBuilder.buildSearchFactory(SearchFactoryBuilder.java:143) at org.modeshape.jcr.RepositoryQueryManager.queryEngine(RepositoryQueryManager.java:185) at org.modeshape.jcr.RepositoryQueryManager.getIndexes(RepositoryQueryManager.java:171) at org.modeshape.jcr.JcrRepository$RepositoryMonitorFactory.indexingMonitor(JcrRepository.java:1930) at org.modeshape.jcr.JcrRepository$RepositoryMonitorFactory.createMonitor(JcrRepository.java:1924) at org.modeshape.jcr.txn.Transactions.newMonitor(Transactions.java:272) at org.modeshape.jcr.txn.Transactions$BaseTransaction.createMonitor(Transactions.java:286) at org.modeshape.jcr.cache.document.WritableSessionCache.save(WritableSessionCache.java:466) ... 34 more Caused by: java.lang.ClassNotFoundException: org.jgroups.MessageListener from [Module "org.hibernate.search.engine:main" from local module loader @31843ea1 (finder: local module finder @612bd56c (roots: /home/jstastny/tmp-workspaces/workspace/modules,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/dv,/home/jstastny/tmp-workspaces/workspace/modules/system/layers/base))] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:213) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.6.Final-redhat-1] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.6.Final-redhat-1] ... 50 more
This last exception is caused by the Hibernate Search bug which is linked to the issue and which is explained here https://bugzilla.redhat.com/show_bug.cgi?id=1231303#c1 This issue has to be validated against a version of EAP 6.4 which contains the Hibernate Search fix.
I am sorry I missed the fix earlier.