throws SubtransactionsUnavailable
{
Thread thread = Thread.currentThread();
if (contexts.containsKey(thread))
throw new SubtransactionsUnavailable();
int timeout = (timeouts.containsKey(thread))?
((Integer) timeouts.get(thread)).intValue() : DEFAULT_TIMEOUT;
Control control = factory.create(timeout);