--- ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2008-12-08 14:02:19.964725000 -0600 +++ /c/jboss/JBOSSTS_4_2_3_SP7/ArjunaJTA/jta/classes/com/arjuna/ats/internal/jta/transaction/arjunacore/BaseTransaction.java 2008-12-08 14:17:42.993877500 -0600 @@ -31,14 +31,11 @@ package com.arjuna.ats.internal.jta.transaction.arjunacore; -import com.arjuna.ats.arjuna.utils.ThreadUtil; import com.arjuna.ats.jta.common.*; import com.arjuna.ats.jta.logging.*; import com.arjuna.common.util.logging.*; -import java.util.Hashtable; - import javax.transaction.NotSupportedException; import java.lang.IllegalStateException; @@ -85,7 +82,7 @@ } - Integer value = (Integer) _timeouts.get(ThreadUtil.getThreadId()); + Integer value = (Integer) _timeout.get(); int v = 0; // if not set then assume 0. What else can we do? if (value != null) @@ -216,13 +213,13 @@ { if (seconds >= 0) { - _timeouts.put(ThreadUtil.getThreadId(), new Integer(seconds)); + _timeout.set(new Integer(seconds)); } } public int getTimeout() throws javax.transaction.SystemException { - Integer value = (Integer) _timeouts.get(ThreadUtil.getThreadId()); + Integer value = (Integer) _timeout.get(); if (value != null) { @@ -265,7 +262,7 @@ throw new javax.transaction.SystemException(e2.toString()); } - Integer value = (Integer) _timeouts.get(ThreadUtil.getThreadId()); + Integer value = (Integer) _timeout.get(); int v = 0; // if not set then assume 0. What else can we do? if (value != null) @@ -314,7 +311,7 @@ private static boolean _supportSubtransactions = false; - private static Hashtable _timeouts = new Hashtable(); + private final static ThreadLocal _timeout = new ThreadLocal(); static {