|
| 1 | +From 2ee74eaf5645576ec0a604941591c9ae09a92a43 Mon Sep 17 00:00:00 2001 |
| 2 | +From: dervoeti <lukas.krug@stackable.tech> |
| 3 | +Date: Wed, 22 Oct 2025 11:13:02 +0200 |
| 4 | +Subject: fix: move StringBuilder into function to prevent race conditions |
| 5 | + |
| 6 | +--- |
| 7 | + .../java/ch/qos/logback/classic/log4j/XMLLayout.java | 10 +--------- |
| 8 | + 1 file changed, 1 insertion(+), 9 deletions(-) |
| 9 | + |
| 10 | +diff --git a/logback-classic/src/main/java/ch/qos/logback/classic/log4j/XMLLayout.java b/logback-classic/src/main/java/ch/qos/logback/classic/log4j/XMLLayout.java |
| 11 | +index 4bc04388a..405f4ef26 100644 |
| 12 | +--- a/logback-classic/src/main/java/ch/qos/logback/classic/log4j/XMLLayout.java |
| 13 | ++++ b/logback-classic/src/main/java/ch/qos/logback/classic/log4j/XMLLayout.java |
| 14 | +@@ -38,9 +38,7 @@ import ch.qos.logback.core.helpers.Transform; |
| 15 | + public class XMLLayout extends LayoutBase<ILoggingEvent> { |
| 16 | + |
| 17 | + private final int DEFAULT_SIZE = 256; |
| 18 | +- private final int UPPER_LIMIT = 2048; |
| 19 | + |
| 20 | +- private StringBuilder buf = new StringBuilder(DEFAULT_SIZE); |
| 21 | + private boolean locationInfo = false; |
| 22 | + private boolean properties = false; |
| 23 | + |
| 24 | +@@ -96,13 +94,7 @@ public class XMLLayout extends LayoutBase<ILoggingEvent> { |
| 25 | + */ |
| 26 | + public String doLayout(ILoggingEvent event) { |
| 27 | + |
| 28 | +- // Reset working buffer. If the buffer is too large, then we need a new |
| 29 | +- // one in order to avoid the penalty of creating a large array. |
| 30 | +- if (buf.capacity() > UPPER_LIMIT) { |
| 31 | +- buf = new StringBuilder(DEFAULT_SIZE); |
| 32 | +- } else { |
| 33 | +- buf.setLength(0); |
| 34 | +- } |
| 35 | ++ StringBuilder buf = new StringBuilder(DEFAULT_SIZE); |
| 36 | + |
| 37 | + // We yield to the \r\n heresy. |
| 38 | + |
0 commit comments