[Jboss-cvs] JBossAS SVN: r55959 - branches/JBoss_3_2_8_SP1_JBAS_3336/connector/src/main/org/jboss/resource/adapter/jdbc/xa
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Aug 15 11:55:55 EDT 2006
Author: weston.price at jboss.com
Date: 2006-08-15 11:55:54 -0400 (Tue, 15 Aug 2006)
New Revision: 55959
Modified:
branches/JBoss_3_2_8_SP1_JBAS_3336/connector/src/main/org/jboss/resource/adapter/jdbc/xa/XAManagedConnection.java
Log:
[JBAS-3336] Backport of fix for destoying a managed connection in the case of an
error in start() on XA resource.
Modified: branches/JBoss_3_2_8_SP1_JBAS_3336/connector/src/main/org/jboss/resource/adapter/jdbc/xa/XAManagedConnection.java
===================================================================
--- branches/JBoss_3_2_8_SP1_JBAS_3336/connector/src/main/org/jboss/resource/adapter/jdbc/xa/XAManagedConnection.java 2006-08-15 15:32:54 UTC (rev 55958)
+++ branches/JBoss_3_2_8_SP1_JBAS_3336/connector/src/main/org/jboss/resource/adapter/jdbc/xa/XAManagedConnection.java 2006-08-15 15:55:54 UTC (rev 55959)
@@ -114,9 +114,24 @@
{
getLog().warn("Error setting state ", e);
}
- xaResource.start(xid, flags);
- synchronized (stateLock)
+ try
{
+ xaResource.start(xid, flags);
+
+ }catch(XAException e)
+ {
+ //JBAS-3336 Connections that fail in enlistment should not be returned
+ //to the pool
+ if(isFailedXA(e.errorCode))
+ {
+ getLog().error("Start transaction failed for " + this);
+ broadcastConnectionError(e);
+ }
+
+ throw e;
+ }
+ synchronized (stateLock)
+ {
currentXid = xid;
inManagedTransaction = true;
}
@@ -186,6 +201,12 @@
return xaResource.setTransactionTimeout(seconds);
}
+ private boolean isFailedXA(int errorCode)
+ {
+
+ return (errorCode == XAException.XAER_RMERR || errorCode == XAException.XAER_RMFAIL);
+ }
+
Properties getProps()
{
return props;
More information about the jboss-cvs-commits
mailing list