You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2020/05/04 14:53:05 UTC
[tomcat] 02/03: Avoid waste of resources due to reconstruction of
objects
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch 7.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
commit bb788e126c9ba07e40b64ca78d92dd230c44552f
Author: KangZhiDong <wo...@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 +-
java/org/apache/juli/ClassLoaderLogManager.java | 2 +-
test/org/apache/catalina/valves/Benchmarks.java | 26 +++++++++++-----------
5 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/java/org/apache/catalina/core/ApplicationContext.java b/java/org/apache/catalina/core/ApplicationContext.java
index a95998b..833c06e 100644
--- a/java/org/apache/catalina/core/ApplicationContext.java
+++ b/java/org/apache/catalina/core/ApplicationContext.java
@@ -190,7 +190,7 @@ public class ApplicationContext implements ServletContext {
/**
* Thread local data used during request dispatch.
*/
- private final ThreadLocal<DispatchData> dispatchData = new ThreadLocal<DispatchData>();
+ private static final ThreadLocal<DispatchData> dispatchData = new ThreadLocal<DispatchData>();
/**
diff --git a/java/org/apache/catalina/ha/tcp/ReplicationValve.java b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
index 53ff3ea..c5abeac 100644
--- a/java/org/apache/catalina/ha/tcp/ReplicationValve.java
+++ b/java/org/apache/catalina/ha/tcp/ReplicationValve.java
@@ -92,7 +92,7 @@ public class ReplicationValve
/**
* crossContext session container
*/
- protected ThreadLocal<ArrayList<DeltaSession>> crossContextSessions =
+ protected static ThreadLocal<ArrayList<DeltaSession>> crossContextSessions =
new ThreadLocal<ArrayList<DeltaSession>>() ;
/**
diff --git a/java/org/apache/catalina/session/PersistentManagerBase.java b/java/org/apache/catalina/session/PersistentManagerBase.java
index f4db615..a935e4b 100644
--- a/java/org/apache/catalina/session/PersistentManagerBase.java
+++ b/java/org/apache/catalina/session/PersistentManagerBase.java
@@ -199,7 +199,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<Session>();
+ private static final ThreadLocal<Session> sessionToSwapIn = new ThreadLocal<Session>();
// ------------------------------------------------------------- Properties
diff --git a/java/org/apache/juli/ClassLoaderLogManager.java b/java/org/apache/juli/ClassLoaderLogManager.java
index b3e1b5f..aca6388 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 ThreadLocal<String> prefix = new ThreadLocal<String>();
+ protected static ThreadLocal<String> prefix = new ThreadLocal<String>();
/**
diff --git a/test/org/apache/catalina/valves/Benchmarks.java b/test/org/apache/catalina/valves/Benchmarks.java
index 882e7d6..2d0155f 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<Date>();
+ private static ThreadLocal<Date> currentDateLocal = new ThreadLocal<Date>();
@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<Date>();
+ private static ThreadLocal<Date> currentDateLocal = new ThreadLocal<Date>();
@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<String>();
+ private static ThreadLocal<String> currentDateStringLocal = new ThreadLocal<String>();
- 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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org