1
14
15 package com.liferay.portal.servlet.filters.threadlocal;
16
17 import com.liferay.portal.kernel.util.GetterUtil;
18 import com.liferay.portal.kernel.util.InitialThreadLocal;
19 import com.liferay.portal.kernel.util.PropsUtil;
20 import com.liferay.portal.kernel.util.ThreadLocalRegistry;
21 import com.liferay.portal.servlet.filters.BasePortalFilter;
22
23 import javax.servlet.FilterChain;
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26
27
32 public class ThreadLocalFilter extends BasePortalFilter {
33
34 public static final boolean ENABLED = GetterUtil.getBoolean(
35 PropsUtil.get(ThreadLocalFilter.class.getName()));
36
37 public static boolean isInUse() {
38 if (_useCountThreadLocal.get() > 0) {
39 return true;
40 }
41 else {
42 return false;
43 }
44 }
45
46 protected void processFilter(
47 HttpServletRequest request, HttpServletResponse response,
48 FilterChain filterChain)
49 throws Exception {
50
51 _useCountThreadLocal.set(_useCountThreadLocal.get() + 1);
52
53 try {
54 processFilter(
55 ThreadLocalFilter.class, request, response, filterChain);
56 }
57 finally {
58 _useCountThreadLocal.set(_useCountThreadLocal.get() - 1);
59
60 ThreadLocalRegistry.resetThreadLocals();
61 }
62 }
63
64 private static ThreadLocal<Long> _useCountThreadLocal =
65 new InitialThreadLocal<Long>(0L);
66
67 }