Bug 103416 - TransactionContextImpl should call fireCommitEvent() within the try block, not the finally block
TransactionContextImpl should call fireCommitEvent() within the try block, no...
Product: Red Hat Web Application Framework
Classification: Retired
Component: persistence (Show other bugs)
All Linux
medium Severity medium
: ---
: ---
Assigned To: ccm-bugs-list
Jon Orris
Depends On:
Blocks: 103600
  Show dependency treegraph
Reported: 2003-08-29 17:57 EDT by Scott Seago
Modified: 2007-04-18 12:57 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2006-03-09 10:41:56 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Scott Seago 2003-08-29 17:57:44 EDT
Description of problem:
TransactionContextImpl should call fireCommitEvent() within the try block, not
the finally block -- as it stands in the 5.2 codebase, if
fireBeforeCommitEvent() throws an exception, that exception is lost since
fireCommitEvent() throws an assertion exception due to the transaction not
cleaning up properly.

changelist 35501 fixes this on the london 5.2 codebase. It's not relevant for
6.0, as this code has been substantially refactored and the problem no longer
exists there.

Version-Release number of selected component (if applicable):

How reproducible:
Only reproduced if fireCommitEvent throws an exception.

Steps to Reproduce:
Actual results:

Expected results:

Additional info:
Comment 1 Richard Li 2003-08-29 20:34:00 EDT
The semantics around disconnected data objects could be violated by this change
in certain cases, so we're going to need to think about this change a bit, and
also see how it works out on the London tree.
Comment 2 Scott Seago 2003-08-29 21:35:17 EDT
Yes, it wasn't clear to me exactly where the disconnectDataObject call should go
after moving the fireCommitEvent() call. The intention of the change is to
prevent fireCommitEvent from being called after an exception is thrown (which is
what the troika code already does). But this code has been refactored so much
for troika that I couldn't just grab it as-is for 5.2
Comment 3 Archit Shah 2003-12-24 13:05:29 EST
Change 35501 integrated to 5.2.x at 35689.

Note You need to log in before you can comment on or make changes to this bug.