[jboss-cvs] JBossAS SVN: r77954 - branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Sep 4 06:13:15 EDT 2008


Author: galder.zamarreno at jboss.com
Date: 2008-09-04 06:13:15 -0400 (Thu, 04 Sep 2008)
New Revision: 77954

Modified:
   branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java
   branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java
Log:
[JBAS-5908] Avoid multiple initialisations by removing the need for cached object and improved efficiency.

Modified: branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java	2008-09-04 09:44:22 UTC (rev 77953)
+++ branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ClientUserTransactionObjectFactory.java	2008-09-04 10:13:15 UTC (rev 77954)
@@ -46,35 +46,24 @@
    implements ObjectFactory
 {
    /**
-    *  The <code>UserTransaction</code> this factory will return.
-    *  This is evaluated lazily in {@link #getUserTransaction()}.
-    */
-   static private UserTransaction userTransaction = null;
-
-   /**
     *  Get the <code>UserTransaction</code> this factory will return.
     *  This may return a cached value from a previous call.
     */
    static private UserTransaction getUserTransaction()
    {
-      if (userTransaction == null) {
-         // See if we have a local TM
-         try {
-            new InitialContext().lookup("java:/TransactionManager");
-
-            // We execute in the server.
-            userTransaction = ServerVMClientUserTransaction.getSingleton();
-         } catch (NamingException ex) {
-            // We execute in a stand-alone client.
-            ClientUserTransaction cut = ClientUserTransaction.getSingleton();
-
-            // Tell the proxy that this is the factory for
-            // transaction propagation contexts.
-            TransactionPropagationContextUtil.setTPCFactory(cut);
-            userTransaction = cut;
-         }
+      UserTransaction userTransaction = null;
+      ServerVMClientUserTransaction serverUserTransaction = ServerVMClientUserTransaction.getSingleton();
+      if (serverUserTransaction.isServer())
+      {
+         userTransaction = serverUserTransaction;
       }
-      return userTransaction;
+      else
+      {
+         ClientUserTransaction cut = ClientUserTransaction.getSingleton();
+         TransactionPropagationContextUtil.setTPCFactory(cut);
+         userTransaction = cut;
+      }
+      return userTransaction; 
    }
 
    public Object getObjectInstance(Object obj, Name name,

Modified: branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java
===================================================================
--- branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java	2008-09-04 09:44:22 UTC (rev 77953)
+++ branches/Branch_4_2/server/src/main/org/jboss/tm/usertx/client/ServerVMClientUserTransaction.java	2008-09-04 10:13:15 UTC (rev 77954)
@@ -101,7 +101,14 @@
    }
 
    // Public --------------------------------------------------------
-
+   
+   // Protected -----------------------------------------------------
+   
+   protected boolean isServer()
+   {
+       return tm != null;
+   }      
+   
    //Registration for TransactionStartedListeners.
 
    public void registerTxStartedListener(UserTransactionStartedListener txStartedListener)




More information about the jboss-cvs-commits mailing list