This is an automated email from the ASF dual-hosted git repository. markt pushed a commit to branch 8.5.x in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit 2b628e8dc9acbab42ad8af068155f660a29c2d91 Author: KangZhiDong <world...@gmail.com> AuthorDate: Sat Apr 25 01:30:47 2020 +0800 Avoid waste of resources due to reconstruction of objects --- .../apache/catalina/core/ApplicationContext.java | 2 +- .../apache/catalina/ha/tcp/ReplicationValve.java | 2 +- .../catalina/session/PersistentManagerBase.java | 2 +- .../catalina/valves/rewrite/RewriteCond.java | 2 +- .../catalina/valves/rewrite/RewriteRule.java | 4 ++-- .../catalina/valves/rewrite/RewriteValve.java | 2 +- java/org/apache/juli/ClassLoaderLogManager.java | 2 +- test/org/apache/catalina/valves/Benchmarks.java | 26 +++++++++++----------- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java index b6cd374..90f32b2 100644 --- a/java/org/apache/catalina/core/ApplicationContext.java +++ b/java/org/apache/catalina/core/ApplicationContext.java @@ -186,7 +186,7 @@ public class ApplicationContext implements ServletContext { /** * Thread local data used during request dispatch. */ - private final ThreadLocal<DispatchData> dispatchData = new ThreadLocal<>(); + private static final ThreadLocal<DispatchData> dispatchData = new ThreadLocal<>(); /** diff --git a/java/org/apache/catalina/ha/tcp/ReplicationValve.java b/java/org/apache/catalina/ha/tcp/ReplicationValve.java index 6eed956..666e29d 100644 --- a/java/org/apache/catalina/ha/tcp/ReplicationValve.java +++ b/java/org/apache/catalina/ha/tcp/ReplicationValve.java @@ -85,7 +85,7 @@ public class ReplicationValve /** * crossContext session container */ - protected final ThreadLocal<ArrayList<DeltaSession>> crossContextSessions = + protected static final ThreadLocal<ArrayList<DeltaSession>> crossContextSessions = new ThreadLocal<>() ; /** diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java b/java/org/apache/catalina/session/PersistentManagerBase.java index 9f52c44..1fd08be 100644 --- a/java/org/apache/catalina/session/PersistentManagerBase.java +++ b/java/org/apache/catalina/session/PersistentManagerBase.java @@ -188,7 +188,7 @@ public abstract class PersistentManagerBase extends ManagerBase * Session that is currently getting swapped in to prevent loading it more * than once concurrently */ - private final ThreadLocal<Session> sessionToSwapIn = new ThreadLocal<>(); + private static final ThreadLocal<Session> sessionToSwapIn = new ThreadLocal<>(); // ------------------------------------------------------------- Properties diff --git a/java/org/apache/catalina/valves/rewrite/RewriteCond.java b/java/org/apache/catalina/valves/rewrite/RewriteCond.java index 47a904c..a980d81 100644 --- a/java/org/apache/catalina/valves/rewrite/RewriteCond.java +++ b/java/org/apache/catalina/valves/rewrite/RewriteCond.java @@ -28,7 +28,7 @@ public class RewriteCond { public static class PatternCondition extends Condition { public Pattern pattern; - private ThreadLocal<Matcher> matcher = new ThreadLocal<>(); + private static ThreadLocal<Matcher> matcher = new ThreadLocal<>(); @Override public boolean evaluate(String value, Resolver resolver) { diff --git a/java/org/apache/catalina/valves/rewrite/RewriteRule.java b/java/org/apache/catalina/valves/rewrite/RewriteRule.java index 833a12c..0aa96de 100644 --- a/java/org/apache/catalina/valves/rewrite/RewriteRule.java +++ b/java/org/apache/catalina/valves/rewrite/RewriteRule.java @@ -26,7 +26,7 @@ public class RewriteRule { protected RewriteCond[] conditions = new RewriteCond[0]; - protected ThreadLocal<Pattern> pattern = new ThreadLocal<>(); + protected static ThreadLocal<Pattern> pattern = new ThreadLocal<>(); protected Substitution substitution = null; protected String patternString = null; @@ -186,7 +186,7 @@ public class RewriteRule { protected boolean cookieSecure = false; protected boolean cookieHttpOnly = false; protected Substitution cookieSubstitution = null; - protected ThreadLocal<String> cookieResult = new ThreadLocal<>(); + protected static ThreadLocal<String> cookieResult = new ThreadLocal<>(); /** * This forces a request attribute named VAR to be set to the value VAL, diff --git a/java/org/apache/catalina/valves/rewrite/RewriteValve.java b/java/org/apache/catalina/valves/rewrite/RewriteValve.java index 78cbe7c..c44f798 100644 --- a/java/org/apache/catalina/valves/rewrite/RewriteValve.java +++ b/java/org/apache/catalina/valves/rewrite/RewriteValve.java @@ -79,7 +79,7 @@ public class RewriteValve extends ValveBase { /** * If rewriting occurs, the whole request will be processed again. */ - protected ThreadLocal<Boolean> invoked = new ThreadLocal<>(); + protected static ThreadLocal<Boolean> invoked = new ThreadLocal<>(); /** diff --git a/java/org/apache/juli/ClassLoaderLogManager.java b/java/org/apache/juli/ClassLoaderLogManager.java index a04285c..cf3ad4c 100644 --- a/java/org/apache/juli/ClassLoaderLogManager.java +++ b/java/org/apache/juli/ClassLoaderLogManager.java @@ -112,7 +112,7 @@ public class ClassLoaderLogManager extends LogManager { * This prefix is used to allow using prefixes for the properties names * of handlers and their subcomponents. */ - protected final ThreadLocal<String> prefix = new ThreadLocal<>(); + protected static final ThreadLocal<String> prefix = new ThreadLocal<>(); /** diff --git a/test/org/apache/catalina/valves/Benchmarks.java b/test/org/apache/catalina/valves/Benchmarks.java index 752ebad..5c67d9b 100644 --- a/test/org/apache/catalina/valves/Benchmarks.java +++ b/test/org/apache/catalina/valves/Benchmarks.java @@ -76,14 +76,14 @@ public class Benchmarks { return "ThreadLocals"; } - private ThreadLocal<Long> currentMillisLocal = new ThreadLocal<Long>() { + private static ThreadLocal<Long> currentMillisLocal = new ThreadLocal<Long>() { @Override protected Long initialValue() { return Long.valueOf(0); } }; - private ThreadLocal<Date> currentDateLocal = new ThreadLocal<>(); + private static ThreadLocal<Date> currentDateLocal = new ThreadLocal<>(); @Override public void run() { @@ -112,14 +112,14 @@ public class Benchmarks { long value = 0; } - private ThreadLocal<MutableLong> currentMillisLocal = new ThreadLocal<MutableLong>() { + private static ThreadLocal<MutableLong> currentMillisLocal = new ThreadLocal<MutableLong>() { @Override protected MutableLong initialValue() { return new MutableLong(); } }; - private ThreadLocal<Date> currentDateLocal = new ThreadLocal<>(); + private static ThreadLocal<Date> currentDateLocal = new ThreadLocal<>(); @Override public void run() { @@ -149,7 +149,7 @@ public class Benchmarks { public Date currentDate; } - private ThreadLocal<Struct> currentStruct = new ThreadLocal<Struct>() { + private static ThreadLocal<Struct> currentStruct = new ThreadLocal<Struct>() { @Override protected Struct initialValue() { return new Struct(); @@ -266,33 +266,33 @@ public class Benchmarks { return "ThreadLocals"; } - private ThreadLocal<String> currentDateStringLocal = new ThreadLocal<>(); + private static ThreadLocal<String> currentDateStringLocal = new ThreadLocal<>(); - private ThreadLocal<Date> currentDateLocal = new ThreadLocal<Date>() { + private static ThreadLocal<Date> currentDateLocal = new ThreadLocal<Date>() { @Override protected Date initialValue() { return new Date(); } }; - private ThreadLocal<SimpleDateFormat> dayFormatterLocal = new ThreadLocal<SimpleDateFormat>() { + private static ThreadLocal<SimpleDateFormat> dayFormatterLocal = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("dd"); } }; - private ThreadLocal<SimpleDateFormat> monthFormatterLocal = new ThreadLocal<SimpleDateFormat>() { + private static ThreadLocal<SimpleDateFormat> monthFormatterLocal = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("MM"); } }; - private ThreadLocal<SimpleDateFormat> yearFormatterLocal = new ThreadLocal<SimpleDateFormat>() { + private static ThreadLocal<SimpleDateFormat> yearFormatterLocal = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("yyyy"); } }; - private ThreadLocal<SimpleDateFormat> timeFormatterLocal = new ThreadLocal<SimpleDateFormat>() { + private static ThreadLocal<SimpleDateFormat> timeFormatterLocal = new ThreadLocal<SimpleDateFormat>() { @Override protected SimpleDateFormat initialValue() { return new SimpleDateFormat("hh:mm:ss"); @@ -354,7 +354,7 @@ public class Benchmarks { "hh:mm:ss"); } - private ThreadLocal<Struct> structLocal = new ThreadLocal<Struct>() { + private static ThreadLocal<Struct> structLocal = new ThreadLocal<Struct>() { @Override protected Struct initialValue() { return new Struct(); @@ -415,7 +415,7 @@ public class Benchmarks { "hh:mm:ss"); } - private ThreadLocal<Struct> structLocal = new ThreadLocal<Struct>() { + private static ThreadLocal<Struct> structLocal = new ThreadLocal<Struct>() { @Override protected Struct initialValue() { return new Struct(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org