Details
-
Bug
-
Resolution: Done
-
Minor
-
5.1.1.FINAL
-
None
-
Workaround Exists
-
-
Low
Description
Scenario: The constructor of SingleSessionCommandService tries to persist the created SessionInfo and fails.
Problem: Because of the failure, SingleSessionCommandService tries to rollback the TX. If the rollback also fail, an exception is thrown with the cause, but the original problem (The failure on SessionInfo persistence) is swallowed.
The code of the catch section demonstrate this:
try
{ this.txm.begin(); //this.appScopedEntityManager.joinTransaction(); registerRollbackSync(); jpm.getApplicationScopedPersistenceContext().persist( this.sessionInfo ); this.txm.commit(); } catch ( Exception t1 ) {
try
catch ( Throwable t2 )
{ throw new RuntimeException( "Could not commit session or rollback", t2 ); } throw new RuntimeException( "Could not commit session",
t1 );
}
If this.txm.rollback() fails, t1 is never logged.
A similar issue was fixed in JBRULES-2656
Attachments
Issue Links
- relates to
-
JBRULES-2656 SingleSessionCommandService Eats an Actual / Real Exception on Rollback
- Closed