[Jboss-cvs] JBossAS SVN: r57095 - trunk/connector/src/main/org/jboss/resource/connectionmanager/xa

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Sep 22 22:30:40 EDT 2006


Author: weston.price at jboss.com
Date: 2006-09-22 22:30:39 -0400 (Fri, 22 Sep 2006)
New Revision: 57095

Modified:
   trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
Log:
[JBAS-3183] [JBAS-1405] [JBAS-397] Continued work on XAResourceWrapper and JcaXid. Moving
previous handling of Xid padding and isSameRM from XidFactory and
BaseWrapperManagedConnectionFactory respectively. 

Modified: trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java
===================================================================
--- trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-23 02:27:18 UTC (rev 57094)
+++ trunk/connector/src/main/org/jboss/resource/connectionmanager/xa/XAResourceWrapper.java	2006-09-23 02:30:39 UTC (rev 57095)
@@ -4,6 +4,8 @@
 import javax.transaction.xa.XAResource;
 import javax.transaction.xa.Xid;
 
+import org.jboss.logging.Logger;
+
 /**
  * A XAResourceWrapper.
  * 
@@ -12,15 +14,18 @@
  */
 public class XAResourceWrapper implements XAResource
 {
+   private static final Logger log = Logger.getLogger(XAResourceWrapper.class);
+   
+   /** The xaResource */
+   private XAResource xaResource;
 
-   private XAResource resource;
-
    private boolean pad;
 
-   private boolean override;
+   private boolean doRMOverride;
 
-   private boolean rmOverride;
-
+   private boolean rmOverrideValue;
+   
+   
    public XAResourceWrapper(XAResource resource)
    {
       this(false, false, resource);
@@ -34,47 +39,63 @@
 
    public XAResourceWrapper(boolean override, boolean pad, XAResource resource)
    {
-      this.override = override;
+      this.doRMOverride = override;
       this.pad = pad;
-      this.resource = resource;
+      this.xaResource = resource;
 
    }
 
    public void commit(Xid xid, boolean onePhase) throws XAException
    {
       xid = convertXid(xid);
-      resource.commit(xid, onePhase);
+      xaResource.commit(xid, onePhase);
    }
 
    public void end(Xid xid, int flags) throws XAException
    {
       xid = convertXid(xid);
-      resource.end(xid, flags);
+      xaResource.end(xid, flags);
 
    }
 
    public void forget(Xid xid) throws XAException
    {
       xid = convertXid(xid);
-      resource.forget(xid);
+      xaResource.forget(xid);
    }
 
    public int getTransactionTimeout() throws XAException
    {
-      return resource.getTransactionTimeout();
+      return xaResource.getTransactionTimeout();
    }
 
    public boolean isSameRM(XAResource resource) throws XAException
    {
-      if (override)
+      
+      if (doRMOverride)
       {
-         return rmOverride;
+         if(log.isTraceEnabled())
+         {
+            log.trace("Executing isSameRM with override value" + rmOverrideValue + " for XAResourceWrapper" + this);
+            
+         }
+         
+         return rmOverrideValue;
 
       }
       else
       {
-         return resource.isSameRM(resource);
-
+         if(resource instanceof XAResourceWrapper)
+         {
+            XAResourceWrapper other = (XAResourceWrapper)resource;
+            return xaResource.isSameRM(other.getResource());
+            
+         }else
+         {
+            return xaResource.isSameRM(resource);
+            
+         }
+         
       }
 
    }
@@ -82,33 +103,36 @@
    public int prepare(Xid xid) throws XAException
    {
       xid = convertXid(xid);
-      return resource.prepare(xid);
+      return xaResource.prepare(xid);
    }
 
    public Xid[] recover(int flag) throws XAException
    {
 
-      return resource.recover(flag);
+      return xaResource.recover(flag);
    }
 
    public void rollback(Xid xid) throws XAException
    {
-      resource.rollback(xid);
+      xid = convertXid(xid);      
+      xaResource.rollback(xid);
    }
 
    public boolean setTransactionTimeout(int flag) throws XAException
    {
-      return resource.setTransactionTimeout(flag);
+      return xaResource.setTransactionTimeout(flag);
 
    }
 
    public void start(Xid xid, int flags) throws XAException
    {
-      resource.start(xid, flags);
+      xid = convertXid(xid);
+      xaResource.start(xid, flags);
    }
 
    private Xid convertXid(Xid xid)
    {
+            
       if (xid instanceof JcaXid)
          return xid;
 
@@ -116,4 +140,11 @@
          return new JcaXid(pad, xid);
 
    }
+
+   private XAResource getResource()
+   {
+      return xaResource;
+   }
+
+
 }




More information about the jboss-cvs-commits mailing list