This is an automated email from the ASF dual-hosted git repository.
vy 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 9e1a437a86 Avoid using released objects in `StackTraceStringResolver`
(#1380)
9e1a437a86 is described below
commit 9e1a437a86f70cc58a4108533935403052d91094
Author: Volkan Yazıcı <[email protected]>
AuthorDate: Mon Mar 20 22:28:22 2023 +0100
Avoid using released objects in `StackTraceStringResolver` (#1380)
---
.../json/resolver/StackTraceStringResolver.java | 18 ++++++++++--------
.../.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml | 4 ++--
.../.2.x.x/1284_redirect_old_javadoc_urls.xml | 2 +-
...ceStringResolver_uses_instance_after_recycling.xml} | 5 ++---
src/changelog/.2.x.x/OsgiServiceLocator_npe.xml | 4 ++--
5 files changed, 17 insertions(+), 16 deletions(-)
diff --git
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/StackTraceStringResolver.java
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/StackTraceStringResolver.java
index 92c2d33252..b22463f9e7 100644
---
a/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/StackTraceStringResolver.java
+++
b/log4j-layout-template-json/src/main/java/org/apache/logging/log4j/layout/template/json/resolver/StackTraceStringResolver.java
@@ -16,14 +16,15 @@
*/
package org.apache.logging.log4j.layout.template.json.resolver;
-import org.apache.logging.log4j.layout.template.json.util.*;
-
import java.util.List;
+import java.util.function.Consumer;
import java.util.function.Supplier;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
+import org.apache.logging.log4j.layout.template.json.util.*;
+
/**
* Exception stack trace to JSON string resolver used by {@link
ExceptionResolver}.
*/
@@ -88,19 +89,20 @@ final class StackTraceStringResolver implements
StackTraceResolver {
final TruncatingBufferedPrintWriter srcWriter =
srcWriterRecycler.acquire();
try {
throwable.printStackTrace(srcWriter);
- final TruncatingBufferedPrintWriter dstWriter =
truncate(srcWriter);
- jsonWriter.writeString(dstWriter);
+ truncate(srcWriter, jsonWriter::writeString);
} finally {
srcWriterRecycler.release(srcWriter);
}
}
- private TruncatingBufferedPrintWriter truncate(
- final TruncatingBufferedPrintWriter srcWriter) {
+ private void truncate(
+ final TruncatingBufferedPrintWriter srcWriter,
+ final Consumer<TruncatingBufferedPrintWriter>
effectiveWriterConsumer) {
// Short-circuit if truncation is not enabled.
if (!truncationEnabled) {
- return srcWriter;
+ effectiveWriterConsumer.accept(srcWriter);
+ return;
}
// Allocate temporary buffers and truncate the input.
@@ -114,10 +116,10 @@ final class StackTraceStringResolver implements
StackTraceResolver {
} finally {
sequencePointerRecycler.release(sequencePointer);
}
+ effectiveWriterConsumer.accept(dstWriter);
} finally {
dstWriterRecycler.release(dstWriter);
}
- return dstWriter;
}
diff --git a/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
b/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
index b166412c83..72f7efd88c 100644
--- a/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
+++ b/src/changelog/.2.x.x/1232_log4j-to-sfl4j-2-OSGiMetadata.xml
@@ -23,7 +23,7 @@
<author id="hanneswell"/>
<author name="Hannes Wellmann"/>
<description format="asciidoc">
- Adapt the OSGi metadata of log4j-to-slf4j to work with slf4j 1 and 2.
- To achieve that use a version range of `[1.7,3)` for the imported slf4j
packages.
+ Adapt the OSGi metadata of `log4j-to-slf4j` to work with SLF4J 1 and 2.
+ To achieve that use a version range of `[1.7,3)` for the imported SLF4J
packages.
</description>
</entry>
diff --git a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
b/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
index 368cf2bf4a..bbaa5eb939 100644
--- a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
+++ b/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
@@ -22,5 +22,5 @@
<issue id="1284" link="https://github.com/apache/logging-log4j2/pull/1284"/>
<author id="vy"/>
<author name="Alexander Brandes"/>
- <description format="asciidoc"> <![CDATA[Redirect old `/<module>/apidocs`
URLs (broken in 2.20.0) to `/javadoc/<module>`]]></description>
+ <description format="asciidoc"><![CDATA[Redirect old `/<module>/apidocs`
URLs (broken in 2.20.0) to `/javadoc/<module>`]]></description>
</entry>
diff --git a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
b/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
similarity index 81%
copy from src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
copy to
src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
index 368cf2bf4a..91b3fe2deb 100644
--- a/src/changelog/.2.x.x/1284_redirect_old_javadoc_urls.xml
+++
b/src/changelog/.2.x.x/1380_StackTraceStringResolver_uses_instance_after_recycling.xml
@@ -19,8 +19,7 @@
xmlns="http://logging.apache.org/log4j/changelog"
xsi:schemaLocation="http://logging.apache.org/log4j/changelog
https://logging.apache.org/log4j/changelog-0.1.1.xsd"
type="fixed">
- <issue id="1284" link="https://github.com/apache/logging-log4j2/pull/1284"/>
+ <issue id="1380" link="https://github.com/apache/logging-log4j2/pull/1380"/>
<author id="vy"/>
- <author name="Alexander Brandes"/>
- <description format="asciidoc"> <![CDATA[Redirect old `/<module>/apidocs`
URLs (broken in 2.20.0) to `/javadoc/<module>`]]></description>
+ <description format="asciidoc">Avoid using released objects in
`StackTraceStringResolver` of JSON Template Layout</description>
</entry>
diff --git a/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
b/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
index ff76cffcdd..dedb09c08a 100644
--- a/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
+++ b/src/changelog/.2.x.x/OsgiServiceLocator_npe.xml
@@ -22,7 +22,7 @@
<author id="ggregory"/>
<description format="asciidoc">
Log a status error event instead of an NPE in
- org.apache.logging.log4j.util.OsgiServiceLocator.loadServices(Class,
Lookup, boolean)
- when a bundle has no valid BundleContext for a service type.
+ `OsgiServiceLocator.loadServices(Class, Lookup, boolean)`
+ when a bundle has no valid `BundleContext` for a service type
</description>
</entry>