User: fleury  
  Date: 00/07/24 19:20:26

  Modified:    src/main/org/jboss/tm TransactionImpl.java TxManager.java
  Log:
  Band Aid code for the "not serializable" exception
  
  Revision  Changes    Path
  1.4       +17 -3     jboss/src/main/org/jboss/tm/TransactionImpl.java
  
  Index: TransactionImpl.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/tm/TransactionImpl.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- TransactionImpl.java      2000/07/04 00:14:36     1.3
  +++ TransactionImpl.java      2000/07/25 02:20:25     1.4
  @@ -29,7 +29,7 @@
    *
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.3 $
  + *   @version $Revision: 1.4 $
    */
   public class TransactionImpl
      implements Transaction, Serializable
  @@ -48,7 +48,7 @@
      // Static --------------------------------------------------------
      static long nextId = 0;
      public long getNextId() { return nextId++; }
  -   public TxManager tm;
  +   public transient TxManager tm;
   
      static String hostName;
   
  @@ -72,6 +72,20 @@
   
         this.tm = tm;
      }
  +   
  +   private TxManager getTxManager() {
  +     
  +        if (tm != null) {
  +                
  +                return tm;
  +        }
  +        
  +        // A way to circle the mess
  +        // :(
  +        tm = TxManager.getTransactionManager();
  +        
  +        return tm;
  +   }
   
      // Public --------------------------------------------------------
      public void commit()
  @@ -179,7 +193,7 @@
         }
   
         // Remove thread association with this tx
  -      tm.removeTransaction();
  +      getTxManager().removeTransaction();
         resources.clear();
      }
   
  
  
  
  1.3       +22 -2     jboss/src/main/org/jboss/tm/TxManager.java
  
  Index: TxManager.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jboss/src/main/org/jboss/tm/TxManager.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- TxManager.java    2000/05/30 18:32:31     1.2
  +++ TxManager.java    2000/07/25 02:20:25     1.3
  @@ -23,7 +23,7 @@
    *      
    *   @see <related>
    *   @author Rickard �berg ([EMAIL PROTECTED])
  - *   @version $Revision: 1.2 $
  + *   @version $Revision: 1.3 $
    */
   public class TxManager
      implements TransactionManager
  @@ -131,7 +131,27 @@
      {
         tx.set(null);
      }
  -   
  +   void associateTransaction(Transaction transaction) {
  +     
  +        tx.set(transaction);
  +   }
  +   
  +   // There has got to be something better :)
  +   static TxManager getTransactionManager() {
  +        
  +             try {
  +                     
  +                     javax.naming.InitialContext context = new 
javax.naming.InitialContext();
  +                     
  +                     //One tx in naming
  +                     System.out.println("Calling get manager from JNDI");
  +                     TxManager manager = (TxManager) 
context.lookup("TransactionManager");
  +                     System.out.println("Returning TM "+manager.hashCode());
  +                     
  +                     return manager;
  +                     
  +             } catch (Exception e ) { return null;}
  +     }
      int getTransactionTimeout()
      {
         return timeOut;
  
  
  

Reply via email to