This is an automated email from the ASF dual-hosted git repository. ebourg pushed a commit to branch 9.0.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 92ee90fbb0ade1513d755afac6d85cd682f8199a Author: Emmanuel Bourg <ebo...@apache.org> AuthorDate: Wed Dec 2 01:07:51 2020 +0100 Replace ThreadLocal inner classes with ThreadLocal.withInitial() + lambda expression --- java/org/apache/catalina/connector/CoyoteAdapter.java | 9 +-------- java/org/apache/catalina/filters/RequestDumperFilter.java | 8 +------- .../apache/catalina/valves/AbstractAccessLogValve.java | 15 ++------------- .../apache/catalina/valves/ExtendedAccessLogValve.java | 14 ++------------ java/org/apache/juli/ClassLoaderLogManager.java | 7 +------ java/org/apache/juli/OneLineFormatter.java | 15 +++------------ java/org/apache/naming/factory/LookupFactory.java | 8 +------- java/org/apache/tomcat/util/http/CookieProcessorBase.java | 14 +++++--------- 8 files changed, 16 insertions(+), 74 deletions(-) diff --git a/java/org/apache/catalina/connector/CoyoteAdapter.java b/java/org/apache/catalina/connector/CoyoteAdapter.java index 4303620..740fa94 100644 --- a/java/org/apache/catalina/connector/CoyoteAdapter.java +++ b/java/org/apache/catalina/connector/CoyoteAdapter.java @@ -83,14 +83,7 @@ public class CoyoteAdapter implements Adapter { private static final ThreadLocal<String> THREAD_NAME = - new ThreadLocal<String>() { - - @Override - protected String initialValue() { - return Thread.currentThread().getName(); - } - - }; + ThreadLocal.withInitial(() -> Thread.currentThread().getName()); // ----------------------------------------------------------- Constructors diff --git a/java/org/apache/catalina/filters/RequestDumperFilter.java b/java/org/apache/catalina/filters/RequestDumperFilter.java index 20dcdcc..b8e9796 100644 --- a/java/org/apache/catalina/filters/RequestDumperFilter.java +++ b/java/org/apache/catalina/filters/RequestDumperFilter.java @@ -57,13 +57,7 @@ public class RequestDumperFilter extends GenericFilter { private static final String NON_HTTP_RES_MSG = "Not available. Non-http response."; - private static final ThreadLocal<Timestamp> timestamp = - new ThreadLocal<Timestamp>() { - @Override - protected Timestamp initialValue() { - return new Timestamp(); - } - }; + private static final ThreadLocal<Timestamp> timestamp = ThreadLocal.withInitial(Timestamp::new); // Log must be non-static as loggers are created per class-loader and this // Filter may be used in multiple class loaders diff --git a/java/org/apache/catalina/valves/AbstractAccessLogValve.java b/java/org/apache/catalina/valves/AbstractAccessLogValve.java index 1d113ed..77ff9b8 100644 --- a/java/org/apache/catalina/valves/AbstractAccessLogValve.java +++ b/java/org/apache/catalina/valves/AbstractAccessLogValve.java @@ -405,25 +405,14 @@ public abstract class AbstractAccessLogValve extends ValveBase implements Access * Thread local date format cache. */ private static final ThreadLocal<DateFormatCache> localDateCache = - new ThreadLocal<DateFormatCache>() { - @Override - protected DateFormatCache initialValue() { - return new DateFormatCache(localCacheSize, Locale.getDefault(), globalDateCache); - } - }; + ThreadLocal.withInitial(() -> new DateFormatCache(localCacheSize, Locale.getDefault(), globalDateCache)); /** * The system time when we last updated the Date that this valve * uses for log lines. */ - private static final ThreadLocal<Date> localDate = - new ThreadLocal<Date>() { - @Override - protected Date initialValue() { - return new Date(); - } - }; + private static final ThreadLocal<Date> localDate = ThreadLocal.withInitial(Date::new); /** * Are we doing conditional logging. default null. diff --git a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java index 5a9fc0d..bc0097c 100644 --- a/java/org/apache/catalina/valves/ExtendedAccessLogValve.java +++ b/java/org/apache/catalina/valves/ExtendedAccessLogValve.java @@ -207,12 +207,7 @@ public class ExtendedAccessLogValve extends AccessLogValve { private static final long INTERVAL = (1000 * 60 * 60 * 24); private static final ThreadLocal<ElementTimestampStruct> currentDate = - new ThreadLocal<ElementTimestampStruct>() { - @Override - protected ElementTimestampStruct initialValue() { - return new ElementTimestampStruct("yyyy-MM-dd"); - } - }; + ThreadLocal.withInitial(() -> new ElementTimestampStruct("yyyy-MM-dd")); @Override public void addElement(CharArrayWriter buf, Date date, Request request, @@ -235,12 +230,7 @@ public class ExtendedAccessLogValve extends AccessLogValve { private static final long INTERVAL = 1000; private static final ThreadLocal<ElementTimestampStruct> currentTime = - new ThreadLocal<ElementTimestampStruct>() { - @Override - protected ElementTimestampStruct initialValue() { - return new ElementTimestampStruct("HH:mm:ss"); - } - }; + ThreadLocal.withInitial(() -> new ElementTimestampStruct("HH:mm:ss")); @Override public void addElement(CharArrayWriter buf, Date date, Request request, diff --git a/java/org/apache/juli/ClassLoaderLogManager.java b/java/org/apache/juli/ClassLoaderLogManager.java index 5672761..43f7e65 100644 --- a/java/org/apache/juli/ClassLoaderLogManager.java +++ b/java/org/apache/juli/ClassLoaderLogManager.java @@ -52,12 +52,7 @@ public class ClassLoaderLogManager extends LogManager { private static final boolean isJava9; - private static ThreadLocal<Boolean> addingLocalRootLogger = new ThreadLocal<Boolean>() { - @Override - protected Boolean initialValue() { - return Boolean.FALSE; - } - }; + private static ThreadLocal<Boolean> addingLocalRootLogger = ThreadLocal.withInitial(() -> Boolean.FALSE); public static final String DEBUG_PROPERTY = ClassLoaderLogManager.class.getName() + ".debug"; diff --git a/java/org/apache/juli/OneLineFormatter.java b/java/org/apache/juli/OneLineFormatter.java index 968a692..ba340bd 100644 --- a/java/org/apache/juli/OneLineFormatter.java +++ b/java/org/apache/juli/OneLineFormatter.java @@ -43,12 +43,8 @@ public class OneLineFormatter extends Formatter { private static final Object threadMxBeanLock = new Object(); private static volatile ThreadMXBean threadMxBean = null; private static final int THREAD_NAME_CACHE_SIZE = 10000; - private static ThreadLocal<ThreadNameCache> threadNameCache = new ThreadLocal<ThreadNameCache>() { - @Override - protected ThreadNameCache initialValue() { - return new ThreadNameCache(THREAD_NAME_CACHE_SIZE); - } - }; + private static ThreadLocal<ThreadNameCache> threadNameCache = + ThreadLocal.withInitial(() -> new ThreadNameCache(THREAD_NAME_CACHE_SIZE)); /* Timestamp format */ private static final String DEFAULT_TIME_FORMAT = "dd-MMM-yyyy HH:mm:ss.SSS"; @@ -109,12 +105,7 @@ public class OneLineFormatter extends Formatter { final DateFormatCache globalDateCache = new DateFormatCache(globalCacheSize, cachedTimeFormat, null); - localDateCache = new ThreadLocal<DateFormatCache>() { - @Override - protected DateFormatCache initialValue() { - return new DateFormatCache(localCacheSize, cachedTimeFormat, globalDateCache); - } - }; + localDateCache = ThreadLocal.withInitial(() -> new DateFormatCache(localCacheSize, cachedTimeFormat, globalDateCache)); } diff --git a/java/org/apache/naming/factory/LookupFactory.java b/java/org/apache/naming/factory/LookupFactory.java index 6e7455c..40bbafe 100644 --- a/java/org/apache/naming/factory/LookupFactory.java +++ b/java/org/apache/naming/factory/LookupFactory.java @@ -41,13 +41,7 @@ public class LookupFactory implements ObjectFactory { private static final Log log = LogFactory.getLog(LookupFactory.class); private static final StringManager sm = StringManager.getManager(LookupFactory.class); - private static final ThreadLocal<Set<String>> names = new ThreadLocal<Set<String>>() { - - @Override - protected Set<String> initialValue() { - return new HashSet<>(); - } - }; + private static final ThreadLocal<Set<String>> names = ThreadLocal.withInitial(HashSet::new); /** * Create a new Resource env instance. diff --git a/java/org/apache/tomcat/util/http/CookieProcessorBase.java b/java/org/apache/tomcat/util/http/CookieProcessorBase.java index 589df47..47fbe58 100644 --- a/java/org/apache/tomcat/util/http/CookieProcessorBase.java +++ b/java/org/apache/tomcat/util/http/CookieProcessorBase.java @@ -27,15 +27,11 @@ public abstract class CookieProcessorBase implements CookieProcessor { private static final String COOKIE_DATE_PATTERN = "EEE, dd-MMM-yyyy HH:mm:ss z"; protected static final ThreadLocal<DateFormat> COOKIE_DATE_FORMAT = - new ThreadLocal<DateFormat>() { - @Override - protected DateFormat initialValue() { - DateFormat df = - new SimpleDateFormat(COOKIE_DATE_PATTERN, Locale.US); - df.setTimeZone(TimeZone.getTimeZone("GMT")); - return df; - } - }; + ThreadLocal.withInitial(() -> { + DateFormat df = new SimpleDateFormat(COOKIE_DATE_PATTERN, Locale.US); + df.setTimeZone(TimeZone.getTimeZone("GMT")); + return df; + }); protected static final String ANCIENT_DATE; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org