You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by pk...@apache.org on 2023/09/19 12:24:32 UTC
[logging-log4j2] branch 2.x updated: ReusableMessageFactory: change static fields to instance
This is an automated email from the ASF dual-hosted git repository.
pkarwasz pushed a commit to branch 2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
The following commit(s) were added to refs/heads/2.x by this push:
new e86d28bdb9 ReusableMessageFactory: change static fields to instance
e86d28bdb9 is described below
commit e86d28bdb927f8047b924eb459f4c63bd2e43176
Author: Piotr P. Karwasz <pi...@karwasz.org>
AuthorDate: Tue Sep 19 12:41:21 2023 +0200
ReusableMessageFactory: change static fields to instance
There is no reason for `ReusableMessageFactory` to have static
`ThreadLocal` fields. Besides this breaks (parallel) tests since
multiple instances of `ReusableMessageFactory` are not independent.
---
.../apache/logging/log4j/message/ReusableMessageFactory.java | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessageFactory.java b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessageFactory.java
index e02f2fd163..bcc074332f 100644
--- a/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessageFactory.java
+++ b/log4j-api/src/main/java/org/apache/logging/log4j/message/ReusableMessageFactory.java
@@ -38,9 +38,9 @@ public final class ReusableMessageFactory implements MessageFactory2, Serializab
public static final ReusableMessageFactory INSTANCE = new ReusableMessageFactory();
private static final long serialVersionUID = -8970940216592525651L;
- private static ThreadLocal<ReusableParameterizedMessage> threadLocalParameterized = new ThreadLocal<>();
- private static ThreadLocal<ReusableSimpleMessage> threadLocalSimpleMessage = new ThreadLocal<>();
- private static ThreadLocal<ReusableObjectMessage> threadLocalObjectMessage = new ThreadLocal<>();
+ private final ThreadLocal<ReusableParameterizedMessage> threadLocalParameterized = new ThreadLocal<>();
+ private final ThreadLocal<ReusableSimpleMessage> threadLocalSimpleMessage = new ThreadLocal<>();
+ private final ThreadLocal<ReusableObjectMessage> threadLocalObjectMessage = new ThreadLocal<>();
/**
* Constructs a message factory.
@@ -48,7 +48,7 @@ public final class ReusableMessageFactory implements MessageFactory2, Serializab
public ReusableMessageFactory() {
}
- private static ReusableParameterizedMessage getParameterized() {
+ private ReusableParameterizedMessage getParameterized() {
ReusableParameterizedMessage result = threadLocalParameterized.get();
if (result == null) {
result = new ReusableParameterizedMessage();
@@ -57,7 +57,7 @@ public final class ReusableMessageFactory implements MessageFactory2, Serializab
return result.reserved ? new ReusableParameterizedMessage().reserve() : result.reserve();
}
- private static ReusableSimpleMessage getSimple() {
+ private ReusableSimpleMessage getSimple() {
ReusableSimpleMessage result = threadLocalSimpleMessage.get();
if (result == null) {
result = new ReusableSimpleMessage();
@@ -66,7 +66,7 @@ public final class ReusableMessageFactory implements MessageFactory2, Serializab
return result;
}
- private static ReusableObjectMessage getObject() {
+ private ReusableObjectMessage getObject() {
ReusableObjectMessage result = threadLocalObjectMessage.get();
if (result == null) {
result = new ReusableObjectMessage();