You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by eb...@apache.org on 2020/12/04 12:00:07 UTC
[tomcat] 04/12: Replace ThreadLocal inner classes with
ThreadLocal.withInitial() + lambda expression
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 <eb...@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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org