Skip to content

Commit 7a5e77f

Browse files
committed
Merge pull request #46372 from vy
* pr/46372: Polish "Avoid using deprecated Log4J constructors" Avoid using deprecated Log4J constructors Closes gh-46372
2 parents 8cf0d17 + 9c1e0e6 commit 7a5e77f

File tree

4 files changed

+35
-13
lines changed

4 files changed

+35
-13
lines changed

core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/ExtendedWhitespaceThrowablePatternConverter.java

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import org.apache.logging.log4j.core.config.plugins.Plugin;
2222
import org.apache.logging.log4j.core.pattern.ConverterKeys;
2323
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter;
24+
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2425
import org.apache.logging.log4j.core.pattern.PatternConverter;
2526
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
2627
import org.jspecify.annotations.Nullable;
@@ -35,25 +36,33 @@
3536
*/
3637
@Plugin(name = "ExtendedWhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY)
3738
@ConverterKeys({ "xwEx", "xwThrowable", "xwException" })
38-
public final class ExtendedWhitespaceThrowablePatternConverter extends ThrowablePatternConverter {
39+
public final class ExtendedWhitespaceThrowablePatternConverter extends LogEventPatternConverter {
3940

4041
private final ExtendedThrowablePatternConverter delegate;
4142

43+
private final String separator;
44+
4245
@SuppressWarnings("deprecation") // https://github.com/apache/logging-log4j2/issues/3809
4346
private ExtendedWhitespaceThrowablePatternConverter(Configuration configuration, @Nullable String[] options) {
44-
super("WhitespaceExtendedThrowable", "throwable", options, configuration);
47+
super("WhitespaceExtendedThrowable", "throwable");
4548
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options);
49+
this.separator = this.delegate.getOptions().getSeparator();
4650
}
4751

4852
@Override
4953
public void format(LogEvent event, StringBuilder buffer) {
5054
if (event.getThrown() != null) {
51-
buffer.append(this.options.getSeparator());
55+
buffer.append(this.separator);
5256
this.delegate.format(event, buffer);
53-
buffer.append(this.options.getSeparator());
57+
buffer.append(this.separator);
5458
}
5559
}
5660

61+
@Override
62+
public boolean handlesThrowable() {
63+
return true;
64+
}
65+
5766
/**
5867
* Creates a new instance of the class. Required by Log4J2.
5968
* @param configuration current configuration

core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2/WhitespaceThrowablePatternConverter.java

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import org.apache.logging.log4j.core.config.Configuration;
2121
import org.apache.logging.log4j.core.config.plugins.Plugin;
2222
import org.apache.logging.log4j.core.pattern.ConverterKeys;
23+
import org.apache.logging.log4j.core.pattern.ExtendedThrowablePatternConverter;
24+
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2325
import org.apache.logging.log4j.core.pattern.PatternConverter;
2426
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
2527
import org.jspecify.annotations.Nullable;
@@ -33,22 +35,33 @@
3335
*/
3436
@Plugin(name = "WhitespaceThrowablePatternConverter", category = PatternConverter.CATEGORY)
3537
@ConverterKeys({ "wEx", "wThrowable", "wException" })
36-
public final class WhitespaceThrowablePatternConverter extends ThrowablePatternConverter {
38+
public final class WhitespaceThrowablePatternConverter extends LogEventPatternConverter {
39+
40+
private final ExtendedThrowablePatternConverter delegate;
41+
42+
private final String separator;
3743

3844
@SuppressWarnings("deprecation") // https://github.com/apache/logging-log4j2/issues/3809
3945
private WhitespaceThrowablePatternConverter(Configuration configuration, @Nullable String[] options) {
40-
super("WhitespaceThrowable", "throwable", options, configuration);
46+
super("WhitespaceThrowable", "throwable");
47+
this.delegate = ExtendedThrowablePatternConverter.newInstance(configuration, options);
48+
this.separator = this.delegate.getOptions().getSeparator();
4149
}
4250

4351
@Override
4452
public void format(LogEvent event, StringBuilder buffer) {
4553
if (event.getThrown() != null) {
46-
buffer.append(this.options.getSeparator());
47-
super.format(event, buffer);
48-
buffer.append(this.options.getSeparator());
54+
buffer.append(this.separator);
55+
this.delegate.format(event, buffer);
56+
buffer.append(this.separator);
4957
}
5058
}
5159

60+
@Override
61+
public boolean handlesThrowable() {
62+
return true;
63+
}
64+
5265
/**
5366
* Creates a new instance of the class. Required by Log4J2.
5467
* @param configuration current configuration

core/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/ExtendedWhitespaceThrowablePatternConverterTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.apache.logging.log4j.core.LogEvent;
2020
import org.apache.logging.log4j.core.config.DefaultConfiguration;
2121
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
22-
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
22+
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2323
import org.junit.jupiter.api.Test;
2424

2525
import static org.assertj.core.api.Assertions.assertThat;
@@ -32,7 +32,7 @@
3232
*/
3333
class ExtendedWhitespaceThrowablePatternConverterTests {
3434

35-
private final ThrowablePatternConverter converter = ExtendedWhitespaceThrowablePatternConverter
35+
private final LogEventPatternConverter converter = ExtendedWhitespaceThrowablePatternConverter
3636
.newInstance(new DefaultConfiguration(), new String[] {});
3737

3838
@Test

core/spring-boot/src/test/java/org/springframework/boot/logging/log4j2/WhitespaceThrowablePatternConverterTests.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
import org.apache.logging.log4j.core.LogEvent;
2020
import org.apache.logging.log4j.core.config.DefaultConfiguration;
2121
import org.apache.logging.log4j.core.impl.Log4jLogEvent;
22-
import org.apache.logging.log4j.core.pattern.ThrowablePatternConverter;
22+
import org.apache.logging.log4j.core.pattern.LogEventPatternConverter;
2323
import org.junit.jupiter.api.Test;
2424

2525
import static org.assertj.core.api.Assertions.assertThat;
@@ -31,7 +31,7 @@
3131
*/
3232
class WhitespaceThrowablePatternConverterTests {
3333

34-
private final ThrowablePatternConverter converter = WhitespaceThrowablePatternConverter
34+
private final LogEventPatternConverter converter = WhitespaceThrowablePatternConverter
3535
.newInstance(new DefaultConfiguration(), new String[] {});
3636

3737
@Test

0 commit comments

Comments
 (0)