This is an automated email from the ASF dual-hosted git repository. pkarwasz pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git
commit aada21dae6a5db33951ed91663355907dad918a0 Author: Piotr P. Karwasz <[email protected]> AuthorDate: Sun Sep 11 15:18:44 2022 +0200 [LOG4J2-708] Improve `Log4jServletFilter` async behavior The `Log4jServletFilter` filter should run on all the threads a request is run. The current version ignores all async dispatches. --- .../src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java | 2 ++ .../test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java | 1 + 2 files changed, 3 insertions(+) diff --git a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java index a15584dec9..af17d5da7b 100644 --- a/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java +++ b/log4j-web/src/main/java/org/apache/logging/log4j/web/Log4jServletFilter.java @@ -87,6 +87,8 @@ public class Log4jServletFilter implements Filter { } finally { this.initializer.clearLoggerContext(); CURRENT_REQUEST.remove(); + // Execute once per thread + request.removeAttribute(ALREADY_FILTERED_ATTRIBUTE); } } } diff --git a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java index 07a1fb4340..5a891cce62 100644 --- a/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java +++ b/log4j-web/src/test/java/org/apache/logging/log4j/web/Log4jServletFilterTest.java @@ -93,6 +93,7 @@ public class Log4jServletFilterTest { then(chain).should().doFilter(same(request), same(response)); then(chain).shouldHaveNoMoreInteractions(); then(initializer).should().clearLoggerContext(); + then(request).should().removeAttribute(Log4jServletFilter.ALREADY_FILTERED_ATTRIBUTE); } @Test
