DescriptionOndrej Chaloupka
2017-03-24 08:01:11 UTC
The problematic scenario is following
1. a client server starts a transaction and call other server with the txn context
2. the other server makes some actions (resources are enlisted and some work is done)
3. the client server calls prepare/commit for ejb remoting resource pointing on the other server
4. the other server tries to prepare/commit its subordinate transaction but it fails
- a resource has a trouble and throws an exception
5. server should pack the txn exception and put there the exception that was thrown by resource
5. the client server should see the exception, exception cause and suppressed exceptions
(suppressed exceptions contains the exception thrown by client)
This behavior is expected by customer.
Current behavior (6.4.CP14) works well for init cause
but the server does not pack the exception thrown
from resource and not sending it to client as suppressed exception part.
Now, here we come an additional trouble. Suppressed exception capability was added to Throwable API
in JDK7. EAP6 code is based on JDK6. The fix of this issue can work *only on JDK7*.
Because the suppressed exception is part of the JDK7 there is no support for the suppressed
part being printed by jboss logmanager. There is need a backport of LOGMGR-148[3] being part
of the release. The backport is covered by logmanager release version 1.5.7.Final.
This issue follows the other previous ones [1][2] which were solving the part where Narayana has to gather exceptions from the resource.
This issue has to solve the trouble where those gathered exceptions are passed from server to client.
[1] https://bugzilla.redhat.com/show_bug.cgi?id=1316270
[2] https://bugzilla.redhat.com/show_bug.cgi?id=1406866
[3] https://issues.jboss.org/browse/LOGMGR-148
Just linking here created PR for this bz to 6.x stream. I'm not sure what is correct branch where the PR should be pointed to but the fix should be just about cherry-picking then
https://github.com/jbossas/jboss-eap/pull/2967