This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git

commit 1719b71374d57d59bdcd99537bf13348cdaf87c7
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 61981e5..004055a 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -171,7 +171,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 144dbbb..8cd73b9 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 20d8ba0..9025293 100644
--- a/java/org/apache/catalina/valves/rewrite/RewriteValve.java
+++ b/java/org/apache/catalina/valves/rewrite/RewriteValve.java
@@ -77,7 +77,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

Reply via email to