001
014
015 package com.liferay.util;
016
017 import com.liferay.portal.kernel.util.InitialThreadLocal;
018
019 import java.util.HashSet;
020 import java.util.Set;
021
022
029 public class ThirdPartyThreadLocalRegistry {
030
031 public static void registerThreadLocal(ThreadLocal<?> threadLocal) {
032 Set<ThreadLocal<?>> threadLocalSet = _threadLocalSet.get();
033
034 threadLocalSet.add(threadLocal);
035 }
036
037 public static void resetThreadLocals() {
038 Set<ThreadLocal<?>> threadLocalSet = _threadLocalSet.get();
039
040 if (threadLocalSet == null) {
041 return;
042 }
043
044 for (ThreadLocal<?> threadLocal : threadLocalSet) {
045 threadLocal.remove();
046 }
047 }
048
049 private static ThreadLocal<Set<ThreadLocal<?>>> _threadLocalSet =
050 new InitialThreadLocal<Set<ThreadLocal<?>>>(
051 ThirdPartyThreadLocalRegistry.class + "._threadLocalSet",
052 new HashSet<ThreadLocal<?>>());
053
054 }