]
David Lloyd commented on WFCORE-561:
------------------------------------
Note that this patch might cause the RowSet API to disappear. The fix for that is going
to have to involve implementing class filtering in the module.xml file to let those
classes "peek" through - or else copying the entire RowSet API into the
javax.sql JAR (which might not be possible if it has cascading dependencies; some analysis
is required).
Class loading problem with XAResource and XADataSource
------------------------------------------------------
Key: WFCORE-561
URL:
https://issues.jboss.org/browse/WFCORE-561
Project: WildFly Core
Issue Type: Bug
Components: Modules
Reporter: David Lloyd
Assignee: David Lloyd
Fix For: 1.0.0.CR6, 2.0.0.Alpha3
We define the JTA API in a module ({{java.transaction.api}}) but we neglect to redefine
those classes in the {{javax.sql}} package which reference that API, including
{{XADataSource}}, which can cause {{LinkageError}} and strange CCEs under certain
circumstances.
The isolated subgraph of classes from that package need to be added to either the
{{java.transaction.api}} module or a new {{javax.sql.api}} module. Then measures must be
taken to prevent the JDK's version of these classes from leaking out, a task
complicated by the presence of the rowset API classes also sharing that package.
One solution is to ensure that the {{javax.api}} module includes a re-exported dependency
on the module with the relocated classes which takes precedence over the system
dependency, ensuring that the system classes never become visible. Another solution is to
modify JBoss Modules to implement an XML mapping of the class filter concept, and then add
class filter expressions to the {{module.xml}} of the {{javax.api}} module.