User: oleg
Date: 00/10/02 08:42:09
Modified: src/main/org/jboss/tm TxCapsule.java
Log:
BugFix: on rollback beforeCompletion() was not invoked for registered
Synchronizations
Revision Changes Path
1.12 +15 -13 jboss/src/main/org/jboss/tm/TxCapsule.java
Index: TxCapsule.java
===================================================================
RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/tm/TxCapsule.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- TxCapsule.java 2000/09/30 00:59:43 1.11
+++ TxCapsule.java 2000/10/02 15:42:09 1.12
@@ -43,14 +43,14 @@
* @author <a href="mailto:[EMAIL PROTECTED]">Marc Fleury</a>
* @author <a href="mailto:[EMAIL PROTECTED]">Ole Husgaard</a>
*
- * @version $Revision: 1.11 $
+ * @version $Revision: 1.12 $
*/
class TxCapsule implements TimeoutTarget
{
// Constants -----------------------------------------------------
// Trace enabled flag
- static private final boolean trace = false;
+ static private final boolean trace = true;
// Code meaning "no heuristics seen", must not be XAException.XA_HEURxxx
static private final int HEUR_NONE = XAException.XA_RETRY;
@@ -245,6 +245,7 @@
case Status.STATUS_UNKNOWN:
throw new IllegalStateException("Unknown state");
case Status.STATUS_MARKED_ROLLBACK:
+ doBeforeCompletion();
endResources();
rollbackResources();
doAfterCompletion();
@@ -340,6 +341,7 @@
switch (status) {
case Status.STATUS_ACTIVE:
case Status.STATUS_MARKED_ROLLBACK:
+ doBeforeCompletion();
endResources();
rollbackResources();
cancelTimeout();
@@ -839,9 +841,9 @@
try {
timeout.cancel();
} catch (Exception e)
- {
- Logger.debug(e);
- } finally {
+ {
+ Logger.debug(e);
+ } finally {
lock();
}
timeout = null;
@@ -905,7 +907,7 @@
private void startResource(XAResource xaRes, int flags)
throws XAException
{
- Logger.debug("TxCapsule.startResource(" + xid.toString() +
+ Logger.debug("TxCapsule.startResource(" + xid.toString() +
") entered: " + xaRes.toString() +
" flags=" + flags);
unlock();
@@ -913,7 +915,7 @@
xaRes.start(xid, flags);
} finally {
lock();
- Logger.debug("TxCapsule.startResource(" + xid.toString() +
+ Logger.debug("TxCapsule.startResource(" + xid.toString() +
") leaving: " + xaRes.toString() +
" flags=" + flags);
}
@@ -926,7 +928,7 @@
private void endResource(XAResource xaRes, int flag)
throws XAException
{
- Logger.debug("TxCapsule.endResource(" + xid.toString() +
+ Logger.debug("TxCapsule.endResource(" + xid.toString() +
") entered: " + xaRes.toString() +
" flag=" + flag);
unlock();
@@ -934,7 +936,7 @@
xaRes.end(xid, flag);
} finally {
lock();
- Logger.debug("TxCapsule.endResource(" + xid.toString() +
+ Logger.debug("TxCapsule.endResource(" + xid.toString() +
") leaving: " + xaRes.toString() +
" flag=" + flag);
}
@@ -964,13 +966,13 @@
resourceState[i] = RS_ENLISTED;
}
if (resourceState[i] == RS_ENLISTED) {
- Logger.debug("endresources("+i+"): state="+resourceState[i]);
+ Logger.debug("endresources("+i+"): state="+resourceState[i]);
endResource(resources[i], XAResource.TMSUCCESS);
resourceState[i] = RS_ENDED;
}
} catch(XAException e) {
- Logger.debug("endresources: XAException: " + e);
- Logger.debug("endresources: XAException: errorCode=" +
e.errorCode);
+ Logger.debug("endresources: XAException: " + e);
+ Logger.debug("endresources: XAException: errorCode=" + e.errorCode);
Logger.exception(e);
status = Status.STATUS_MARKED_ROLLBACK;
}
@@ -1207,7 +1209,7 @@
status = Status.STATUS_COMMITTING;
for (int i = 0; i < resourceCount; i++) {
- Logger.debug("TxCapsule.commitResources():
resourceStates["+i+"]="+resourceState[i]);
+ Logger.debug("TxCapsule.commitResources():
resourceStates["+i+"]="+resourceState[i]);
if (!onePhase && resourceState[i] != RS_VOTE_OK)
continue;