]
Stefano Maestri resolved JBJCA-1386.
------------------------------------
Resolution: Done
TCCL is not set to datasource module
------------------------------------
Key: JBJCA-1386
URL:
https://issues.jboss.org/browse/JBJCA-1386
Project: IronJacamar
Issue Type: Bug
Affects Versions: WildFly/IronJacamar 1.4.2.Final
Reporter: Bartosz Spyrko-Śmietanko
Assignee: Bartosz Spyrko-Śmietanko
Priority: Major
TCCL is not set to datasource module
User has a datasource that uses ORB classes and is getting a ClassNotFound.
If a 3rd party JDBC driver implementation is using e. g. CORBA, the class loader is not
set and thus the CORBA classes got loaded from the 'org.jboss.as.connector'
modules class loader.
So the root cause is the Thread Context ClassLoader (TCCL) is not set to the
classloader/module of the datasource driver module. The particular datasource driver is
making using of ORB.init which is a JDK class that looks on the TCCL and other places to
load the class specified in ORB.init, but JCA when running has not set the TCCL thus the
classes cannot be found.
Having the TCCL set to the application is how JEE handles related situations to load
application classes, so it would make sense that when JCA is running the datasource that
it would have the TCCL set to the module of the datasource or a delegate class loader that
sees both the datasource module and any other class loader that JCA might need, JBossWS
does something similar.