public class NamedInheritablethreadlocal<T> extends InheritableThreadLocal<T> {
public NamedInheritablethreadlocal(String name) { Assert.hasText(name, "Name must not be empty"); this.name = name; }
public String toString() { return name; }
private final String name; }
public abstract class TransactionParentSynchronizationManager { 〜略〜
private static final Log logger; private static final Comparator synchronizationComparator = new OrderComparator(); private static final ThreadLocal resources = new NamedInheritablethreadlocal("Transactional resources"); private static final ThreadLocal synchronizations = new NamedInheritablethreadlocal("Transaction synchronizations"); private static final ThreadLocal currentTransactionName = new NamedInheritablethreadlocal("Current transaction name"); private static final ThreadLocal currentTransactionReadOnly = new NamedInheritablethreadlocal("Current transaction read-only status"); private static final ThreadLocal currentTransactionIsolationLevel = new NamedInheritablethreadlocal("Current transaction isolation level"); private static final ThreadLocal actualTransactionActive = new NamedInheritablethreadlocal("Actual transaction active");