[jboss-svn-commits] JBL Code SVN: r18820 - labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Mar 11 07:36:07 EDT 2008
Author: mark.little at jboss.com
Date: 2008-03-11 07:36:07 -0400 (Tue, 11 Mar 2008)
New Revision: 18820
Modified:
labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
Log:
http://jira.jboss.com/jira/browse/JBTM-343
Modified: labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java
===================================================================
--- labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2008-03-11 11:35:51 UTC (rev 18819)
+++ labs/jbosstm/trunk/ArjunaJTS/jtax/classes/com/arjuna/ats/internal/jta/resources/jts/orbspecific/XAResourceRecord.java 2008-03-11 11:36:07 UTC (rev 18820)
@@ -767,18 +767,45 @@
}
catch (XAException e1)
{
- if ((e1.errorCode >= XAException.XA_RBBASE)
- && (e1.errorCode < XAException.XA_RBEND))
+ /*
+ * Now it's not legal to return a heuristic from end, but
+ * apparently Oracle does (http://jira.jboss.com/jira/browse/JBTM-343)
+ * Since this is 1PC we can call forget: the outcome of the
+ * transaction is the outcome of the participant.
+ */
+
+ switch (e1.errorCode)
{
+ case XAException.XA_HEURHAZ:
+ case XAException.XA_HEURMIX:
+ case XAException.XA_HEURCOM:
+ case XAException.XA_HEURRB:
+ throw e1;
+ case XAException.XA_RBROLLBACK:
+ case XAException.XA_RBCOMMFAIL:
+ case XAException.XA_RBDEADLOCK:
+ case XAException.XA_RBINTEGRITY:
+ case XAException.XA_RBOTHER:
+ case XAException.XA_RBPROTO:
+ case XAException.XA_RBTIMEOUT:
+ case XAException.XA_RBTRANSIENT:
/*
* Has been marked as rollback-only. We still
* need to call rollback.
*/
commit = false;
+ break;
+ case XAException.XAER_RMERR:
+ case XAException.XAER_NOTA:
+ case XAException.XAER_PROTO:
+ case XAException.XAER_INVAL:
+ case XAException.XAER_RMFAIL:
+ default:
+ {
+ throw new UNKNOWN();
}
- else
- throw new UNKNOWN();
+ }
}
_theXAResource.commit(_tranID, true);
More information about the jboss-svn-commits
mailing list