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;