Skip to content

Commit 0d6876d

Browse files
authored
Remove log4j2.enable.threadlocals property (#2171)
1 parent b1113c7 commit 0d6876d

File tree

66 files changed

+241
-1955
lines changed

Some content is hidden

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

66 files changed

+241
-1955
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: 12 additions & 12 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;
@@ -61,7 +61,7 @@ public class LoggerTest {
6161
public static final LoggerContextFactoryExtension EXTENSION =
6262
new LoggerContextFactoryExtension(new TestLoggerContextFactory());
6363

64-
private static class TestParameterizedMessageFactory {
64+
private static class TestReusableMessageFactory {
6565
// empty
6666
}
6767

@@ -344,12 +344,12 @@ public void getFormatterLogger_String() {
344344

345345
@Test
346346
@ResourceLock("log4j2.TestLogger")
347-
public void getLogger_Class_ParameterizedMessageFactory() {
347+
public void getLogger_Class_ReusableMessageFactory() {
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 =
352-
(TestLogger) LogManager.getLogger(TestParameterizedMessageFactory.class, messageFactory);
352+
(TestLogger) LogManager.getLogger(TestReusableMessageFactory.class, messageFactory);
353353
assertNotNull(testLogger);
354354
assertEqualMessageFactory(messageFactory, testLogger);
355355
testLogger.debug("{}", Integer.MAX_VALUE);
@@ -375,12 +375,12 @@ public void getLogger_Class_StringFormatterMessageFactory() {
375375

376376
@Test
377377
@ResourceLock("log4j2.TestLogger")
378-
public void getLogger_Object_ParameterizedMessageFactory() {
378+
public void getLogger_Object_ReusableMessageFactory() {
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 =
383-
(TestLogger) LogManager.getLogger(new TestParameterizedMessageFactory(), messageFactory);
383+
(TestLogger) LogManager.getLogger(new TestReusableMessageFactory(), messageFactory);
384384
assertNotNull(testLogger);
385385
assertEqualMessageFactory(messageFactory, testLogger);
386386
testLogger.debug("{}", Integer.MAX_VALUE);
@@ -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.
@@ -433,10 +433,10 @@ public void getLogger_String_MessageFactoryMismatch() {
433433

434434
@Test
435435
@ResourceLock("log4j2.TestLogger")
436-
public void getLogger_String_ParameterizedMessageFactory() {
437-
final ParameterizedMessageFactory messageFactory = ParameterizedMessageFactory.INSTANCE;
436+
public void getLogger_String_ReusableMessageFactory() {
437+
final MessageFactory messageFactory = new ReusableMessageFactory();
438438
final TestLogger testLogger =
439-
(TestLogger) LogManager.getLogger("getLogger_String_ParameterizedMessageFactory", messageFactory);
439+
(TestLogger) LogManager.getLogger("getLogger_String_ReusableMessageFactory", messageFactory);
440440
assertNotNull(testLogger);
441441
assertEqualMessageFactory(messageFactory, testLogger);
442442
testLogger.debug("{}", Integer.MAX_VALUE);

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

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

1919
import edu.umd.cs.findbugs.annotations.Nullable;
2020
import java.util.Properties;
21+
import org.apache.logging.log4j.spi.LoggingSystemProperty;
2122
import org.apache.logging.log4j.spi.recycler.RecyclerFactory;
2223
import org.apache.logging.log4j.spi.recycler.RecyclerFactoryRegistry;
2324
import org.apache.logging.log4j.util.PropertiesUtil;
@@ -29,16 +30,16 @@ private RecyclerFactoryTestUtil() {}
2930

3031
@Nullable
3132
static RecyclerFactory createForEnvironment(
32-
@Nullable Boolean threadLocalsEnabled, @Nullable final String factory, @Nullable final Integer capacity) {
33+
@Nullable Boolean webApp, @Nullable final String factory, @Nullable final Integer capacity) {
3334
final Properties properties = new Properties();
34-
if (threadLocalsEnabled != null) {
35-
properties.setProperty("log4j2.*.ThreadLocals.enable", "" + threadLocalsEnabled);
35+
if (webApp != null) {
36+
properties.setProperty(LoggingSystemProperty.IS_WEBAPP.getSystemKey(), webApp + "");
3637
}
3738
if (factory != null) {
38-
properties.setProperty("log4j2.*.Recycler.factory", factory);
39+
properties.setProperty(LoggingSystemProperty.RECYCLER_FACTORY.getSystemKey(), factory);
3940
}
4041
if (capacity != null) {
41-
properties.setProperty("log4j2.*.Recycler.capacity", "" + capacity);
42+
properties.setProperty(LoggingSystemProperty.RECYCLER_CAPACITY.getSystemKey(), capacity + "");
4243
}
4344
final PropertyEnvironment env = new PropertiesUtil(properties);
4445
return RecyclerFactoryRegistry.findRecyclerFactory(env);

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,16 +44,16 @@ private static class RecyclableObject {}
4444

4545
@BeforeEach
4646
void setUp() {
47-
final RecyclerFactory recyclerFactory = createForEnvironment(null, "threadLocal", CAPACITY);
47+
final RecyclerFactory recyclerFactory = createForEnvironment(false, "threadLocal", CAPACITY);
4848
assertThat(recyclerFactory).isInstanceOf(ThreadLocalRecyclerFactory.class);
4949
assert recyclerFactory != null;
5050
recycler = (ThreadLocalRecycler<RecyclableObject>) recyclerFactory.create(RecyclableObject::new);
5151
recyclerQueue = recycler.queueRef.get();
5252
}
5353

5454
@Test
55-
void should_not_be_configured_when_TLs_are_disabled() {
56-
assertThatThrownBy(() -> createForEnvironment(false, "threadLocal", null))
55+
void should_not_be_configured_for_webapps() {
56+
assertThatThrownBy(() -> createForEnvironment(true, "threadLocal", null))
5757
.isInstanceOf(IllegalArgumentException.class)
5858
.hasMessageStartingWith("failed to configure recycler");
5959
}

0 commit comments

Comments
 (0)