Skip to content

Commit 589304f

Browse files
committed
Remove log4j2.enable.threadlocals property
1 parent e41a62b commit 589304f

File tree

68 files changed

+244
-2558
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+244
-2558
lines changed

log4j-1.2-api/src/main/java/org/apache/log4j/layout/Log4j1SyslogLayout.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -146,7 +146,7 @@ public static <B extends Builder<B>> B newBuilder() {
146146
*/
147147
private static final String[] dateFormatOptions = {"MMM dd HH:mm:ss", null, "en"};
148148

149-
private final LogEventPatternConverter dateConverter = DatePatternConverter.newInstance(dateFormatOptions);
149+
private final LogEventPatternConverter dateConverter;
150150

151151
private Log4j1SyslogLayout(
152152
final Configuration config,
@@ -160,6 +160,7 @@ private Log4j1SyslogLayout(
160160
this.facilityPrinting = facilityPrinting;
161161
this.header = header;
162162
this.messageLayout = messageLayout;
163+
this.dateConverter = DatePatternConverter.newInstance(config, dateFormatOptions);
163164
}
164165

165166
/**

log4j-api-test/src/test/java/org/apache/logging/log4j/AbstractLoggerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import org.apache.logging.log4j.message.Message;
2929
import org.apache.logging.log4j.message.ObjectMessage;
3030
import org.apache.logging.log4j.message.ParameterizedMessage;
31-
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
31+
import org.apache.logging.log4j.message.ReusableMessageFactory;
3232
import org.apache.logging.log4j.message.SimpleMessage;
3333
import org.apache.logging.log4j.spi.AbstractLogger;
3434
import org.apache.logging.log4j.status.StatusData;
@@ -964,7 +964,7 @@ private static class CountingLogger extends AbstractLogger {
964964
private int objectCount;
965965

966966
CountingLogger() {
967-
super("CountingLogger", ParameterizedMessageFactory.INSTANCE);
967+
super("CountingLogger", new ReusableMessageFactory());
968968
}
969969

970970
void setCurrentLevel(final Level currentLevel) {
@@ -1261,7 +1261,7 @@ private static class ThrowableExpectingLogger extends AbstractLogger {
12611261
private final boolean expectingThrowables;
12621262

12631263
ThrowableExpectingLogger(final boolean expectingThrowables) {
1264-
super("ThrowableExpectingLogger", ParameterizedMessageFactory.INSTANCE);
1264+
super("ThrowableExpectingLogger", new ReusableMessageFactory());
12651265
this.expectingThrowables = expectingThrowables;
12661266
}
12671267

log4j-api-test/src/test/java/org/apache/logging/log4j/LogManagerTest.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
import java.io.Closeable;
2323
import java.io.IOException;
24-
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
24+
import org.apache.logging.log4j.message.ReusableMessageFactory;
2525
import org.apache.logging.log4j.spi.LoggerContext;
2626
import org.junit.jupiter.api.Test;
2727
import org.junitpioneer.jupiter.ReadsSystemProperty;
@@ -52,25 +52,26 @@ public void testGetLogger() {
5252
Logger logger = LogManager.getLogger();
5353
assertNotNull(logger, "No Logger returned");
5454
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
55-
logger = LogManager.getLogger(ParameterizedMessageFactory.INSTANCE);
55+
final ReusableMessageFactory messageFactory = new ReusableMessageFactory();
56+
logger = LogManager.getLogger(messageFactory);
5657
assertNotNull(logger, "No Logger returned");
5758
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
5859
logger = LogManager.getLogger((Class<?>) null);
5960
assertNotNull(logger, "No Logger returned");
6061
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
61-
logger = LogManager.getLogger((Class<?>) null, ParameterizedMessageFactory.INSTANCE);
62+
logger = LogManager.getLogger((Class<?>) null, messageFactory);
6263
assertNotNull(logger, "No Logger returned");
6364
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
6465
logger = LogManager.getLogger((String) null);
6566
assertNotNull(logger, "No Logger returned");
6667
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
67-
logger = LogManager.getLogger((String) null, ParameterizedMessageFactory.INSTANCE);
68+
logger = LogManager.getLogger((String) null, messageFactory);
6869
assertNotNull(logger, "No Logger returned");
6970
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
7071
logger = LogManager.getLogger((Object) null);
7172
assertNotNull(logger, "No Logger returned");
7273
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
73-
logger = LogManager.getLogger((Object) null, ParameterizedMessageFactory.INSTANCE);
74+
logger = LogManager.getLogger((Object) null, messageFactory);
7475
assertNotNull(logger, "No Logger returned");
7576
assertEquals(LogManagerTest.class.getName(), logger.getName(), "Incorrect Logger name: " + logger.getName());
7677
}

log4j-api-test/src/test/java/org/apache/logging/log4j/LoggerTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@
3434
import org.apache.logging.log4j.message.Message;
3535
import org.apache.logging.log4j.message.MessageFactory;
3636
import org.apache.logging.log4j.message.ObjectMessage;
37-
import org.apache.logging.log4j.message.ParameterizedMessageFactory;
37+
import org.apache.logging.log4j.message.ReusableMessageFactory;
3838
import org.apache.logging.log4j.message.SimpleMessage;
3939
import org.apache.logging.log4j.message.SimpleMessageFactory;
4040
import org.apache.logging.log4j.message.StringFormatterMessageFactory;
@@ -347,7 +347,7 @@ public void getFormatterLogger_String() {
347347
public void getLogger_Class_ParameterizedMessageFactory() {
348348
// The TestLogger logger was already created in an instance variable for this class.
349349
// The message factory is only used when the logger is created.
350-
final ParameterizedMessageFactory messageFactory = ParameterizedMessageFactory.INSTANCE;
350+
final MessageFactory messageFactory = new ReusableMessageFactory();
351351
final TestLogger testLogger =
352352
(TestLogger) LogManager.getLogger(TestParameterizedMessageFactory.class, messageFactory);
353353
assertNotNull(testLogger);
@@ -378,7 +378,7 @@ public void getLogger_Class_StringFormatterMessageFactory() {
378378
public void getLogger_Object_ParameterizedMessageFactory() {
379379
// The TestLogger logger was already created in an instance variable for this class.
380380
// The message factory is only used when the logger is created.
381-
final ParameterizedMessageFactory messageFactory = ParameterizedMessageFactory.INSTANCE;
381+
final MessageFactory messageFactory = new ReusableMessageFactory();
382382
final TestLogger testLogger =
383383
(TestLogger) LogManager.getLogger(new TestParameterizedMessageFactory(), messageFactory);
384384
assertNotNull(testLogger);
@@ -419,7 +419,7 @@ public void getLogger_String_MessageFactoryMismatch() {
419419
assertNotNull(testLogger);
420420
assertEqualMessageFactory(messageFactory, testLogger);
421421
final TestLogger testLogger2 = (TestLogger)
422-
LogManager.getLogger("getLogger_String_MessageFactoryMismatch", ParameterizedMessageFactory.INSTANCE);
422+
LogManager.getLogger("getLogger_String_MessageFactoryMismatch", new ReusableMessageFactory());
423423
assertNotNull(testLogger2);
424424
// TODO: How to test?
425425
// This test context always creates new loggers, other test context impls I tried fail other tests.
@@ -434,7 +434,7 @@ public void getLogger_String_MessageFactoryMismatch() {
434434
@Test
435435
@ResourceLock("log4j2.TestLogger")
436436
public void getLogger_String_ParameterizedMessageFactory() {
437-
final ParameterizedMessageFactory messageFactory = ParameterizedMessageFactory.INSTANCE;
437+
final MessageFactory messageFactory = new ReusableMessageFactory();
438438
final TestLogger testLogger =
439439
(TestLogger) LogManager.getLogger("getLogger_String_ParameterizedMessageFactory", messageFactory);
440440
assertNotNull(testLogger);

log4j-api-test/src/test/java/org/apache/logging/log4j/internal/recycler/ArrayQueueTest.java

Lines changed: 0 additions & 101 deletions
This file was deleted.

log4j-api-test/src/test/java/org/apache/logging/log4j/internal/recycler/RecyclerFactoryRegistryTest.java

Lines changed: 22 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -16,48 +16,32 @@
1616
*/
1717
package org.apache.logging.log4j.internal.recycler;
1818

19-
import static org.apache.logging.log4j.internal.recycler.RecyclerFactoryTestUtil.createForEnvironment;
2019
import static org.apache.logging.log4j.spi.recycler.Recycler.DEFAULT_CAPACITY;
2120
import static org.assertj.core.api.Assertions.assertThat;
2221

22+
import edu.umd.cs.findbugs.annotations.Nullable;
23+
import java.util.Properties;
2324
import org.apache.logging.log4j.internal.recycler.DummyRecyclerFactoryProvider.DummyRecyclerFactory;
2425
import org.apache.logging.log4j.internal.recycler.QueueingRecyclerFactoryProvider.QueueingRecyclerFactory;
25-
import org.apache.logging.log4j.internal.recycler.ThreadLocalRecyclerFactoryProvider.ThreadLocalRecyclerFactory;
2626
import org.apache.logging.log4j.spi.recycler.RecyclerFactory;
2727
import org.apache.logging.log4j.spi.recycler.RecyclerFactoryProvider;
28+
import org.apache.logging.log4j.spi.recycler.RecyclerFactoryRegistry;
29+
import org.apache.logging.log4j.util.PropertiesUtil;
30+
import org.apache.logging.log4j.util.PropertyEnvironment;
2831
import org.assertj.core.api.InstanceOfAssertFactories;
2932
import org.junit.jupiter.api.Test;
3033

3134
public class RecyclerFactoryRegistryTest {
3235

3336
@Test
3437
void DummyRecyclerFactory_should_work() {
35-
final RecyclerFactory factory = createForEnvironment(null, "dummy", null);
38+
final RecyclerFactory factory = createForEnvironment("dummy", null);
3639
assertThat(factory).isInstanceOf(DummyRecyclerFactory.class);
3740
}
3841

39-
@Test
40-
void ThreadLocalRecyclerFactory_should_work() {
41-
final RecyclerFactory factory = createForEnvironment(null, "threadLocal", null);
42-
assertThat(factory)
43-
.asInstanceOf(InstanceOfAssertFactories.type(ThreadLocalRecyclerFactory.class))
44-
.extracting(factory_ -> factory_.capacity)
45-
.isEqualTo(DEFAULT_CAPACITY);
46-
}
47-
48-
@Test
49-
void ThreadLocalRecyclerFactory_should_work_with_capacity() {
50-
final int capacity = 13;
51-
final RecyclerFactory factory = createForEnvironment(null, "threadLocal", capacity);
52-
assertThat(factory)
53-
.asInstanceOf(InstanceOfAssertFactories.type(ThreadLocalRecyclerFactory.class))
54-
.extracting(factory_ -> factory_.capacity)
55-
.isEqualTo(capacity);
56-
}
57-
5842
@Test
5943
void QueueingRecyclerFactory_should_work() {
60-
final RecyclerFactory factory = createForEnvironment(null, "queue", null);
44+
final RecyclerFactory factory = createForEnvironment("queue", null);
6145
assertThat(factory)
6246
.asInstanceOf(InstanceOfAssertFactories.type(QueueingRecyclerFactory.class))
6347
.extracting(factory_ -> factory_.capacity)
@@ -67,19 +51,31 @@ void QueueingRecyclerFactory_should_work() {
6751
@Test
6852
void QueueingRecyclerFactory_should_work_with_capacity() {
6953
final int capacity = 100;
70-
final RecyclerFactory factory = createForEnvironment(null, "queue", capacity);
54+
final RecyclerFactory factory = createForEnvironment("queue", capacity);
7155
assertThat(factory)
7256
.asInstanceOf(InstanceOfAssertFactories.type(QueueingRecyclerFactory.class))
7357
.extracting(factory_ -> factory_.capacity)
7458
.isEqualTo(capacity);
7559
}
7660

61+
@Nullable
62+
private static RecyclerFactory createForEnvironment(
63+
@Nullable final String factory, @Nullable final Integer capacity) {
64+
final Properties properties = new Properties();
65+
if (factory != null) {
66+
properties.setProperty("log4j2.*.Recycler.factory", factory);
67+
}
68+
if (capacity != null) {
69+
properties.setProperty("log4j2.*.Recycler.capacity", "" + capacity);
70+
}
71+
final PropertyEnvironment env = new PropertiesUtil(properties);
72+
return RecyclerFactoryRegistry.findRecyclerFactory(env);
73+
}
74+
7775
@Test
7876
void verify_order() {
7977
final RecyclerFactoryProvider dummyProvider = new DummyRecyclerFactoryProvider();
80-
final RecyclerFactoryProvider threadLocalProvider = new ThreadLocalRecyclerFactoryProvider();
8178
final RecyclerFactoryProvider queueProvider = new QueueingRecyclerFactoryProvider();
8279
assertThat(dummyProvider.getOrder()).isGreaterThan(queueProvider.getOrder());
83-
assertThat(queueProvider.getOrder()).isGreaterThan(threadLocalProvider.getOrder());
8480
}
8581
}

log4j-api-test/src/test/java/org/apache/logging/log4j/internal/recycler/RecyclerFactoryTestUtil.java

Lines changed: 0 additions & 46 deletions
This file was deleted.

0 commit comments

Comments
 (0)