You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2004/04/06 20:33:36 UTC

cvs commit: incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction UserTransactionImpl.java

dain        2004/04/06 11:33:36

  Modified:    modules/transaction/src/java/org/apache/geronimo/transaction
                        UserTransactionImpl.java
  Log:
  Made UserTransactionImpl serializable
  
  Revision  Changes    Path
  1.2       +12 -7     incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/UserTransactionImpl.java
  
  Index: UserTransactionImpl.java
  ===================================================================
  RCS file: /home/cvs/incubator-geronimo/modules/transaction/src/java/org/apache/geronimo/transaction/UserTransactionImpl.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- UserTransactionImpl.java	6 Apr 2004 00:21:20 -0000	1.1
  +++ UserTransactionImpl.java	6 Apr 2004 18:33:36 -0000	1.2
  @@ -17,6 +17,7 @@
   
   package org.apache.geronimo.transaction;
   
  +import java.io.Serializable;
   import javax.transaction.HeuristicMixedException;
   import javax.transaction.HeuristicRollbackException;
   import javax.transaction.NotSupportedException;
  @@ -38,10 +39,12 @@
    *
    * @version $Revision$ $Date$
    */
  -public class UserTransactionImpl implements UserTransaction {
  -    private TransactionManager txnManager;
  -    private TrackedConnectionAssociator trackedConnectionAssociator;
  -    private final ThreadLocal state = new ThreadLocal() {
  +public class UserTransactionImpl implements UserTransaction, Serializable {
  +    private transient TransactionManager txnManager;
  +    private transient TrackedConnectionAssociator trackedConnectionAssociator;
  +
  +    private final ThreadLocal state = new StateThreadLocal();
  +    private static class StateThreadLocal extends ThreadLocal implements Serializable {
           protected Object initialValue() {
               return OFFLINE;
           }
  @@ -96,7 +99,8 @@
           getUserTransaction().setTransactionTimeout(timeout);
       }
   
  -    private final UserTransaction ONLINE = new UserTransaction() {
  +    private final UserTransaction ONLINE = new OnlineUserTransaction();
  +    private final class OnlineUserTransaction implements UserTransaction, Serializable {
           public int getStatus() throws SystemException {
               return txnManager.getStatus();
           }
  @@ -165,7 +169,8 @@
           }
       };
   
  -    private static final UserTransaction OFFLINE = new UserTransaction() {
  +    private static final UserTransaction OFFLINE = new OfflineUserTransaction();
  +    private static final class OfflineUserTransaction implements UserTransaction, Serializable {
           public void begin() throws NotSupportedException, SystemException {
               throw new IllegalStateException("Cannot use UserTransaction methods in this state");
           }