You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@logging.apache.org by rg...@apache.org on 2022/05/11 20:59:24 UTC

[logging-log4j2] branch release-2.x updated: Defer fetching of the filter configuration until the first poll to prevent application startup from being blocked

This is an automated email from the ASF dual-hosted git repository.

rgoers pushed a commit to branch release-2.x
in repository https://gitbox.apache.org/repos/asf/logging-log4j2.git


The following commit(s) were added to refs/heads/release-2.x by this push:
     new d807c7adbe Defer fetching of the filter configuration until the first poll to prevent application startup from being blocked
d807c7adbe is described below

commit d807c7adbe6235a05c617f15148dad0c396c3c05
Author: Ralph Goers <rg...@apache.org>
AuthorDate: Wed May 11 13:59:14 2022 -0700

    Defer fetching of the filter configuration until the first poll to prevent application startup from being blocked
---
 .../core/filter/MutableThreadContextMapFilter.java   | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
index 3fab3e4fa0..5b9377dc34 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/filter/MutableThreadContextMapFilter.java
@@ -247,19 +247,23 @@ public class MutableThreadContextMapFilter extends AbstractFilter {
             }
             final AuthorizationProvider authorizationProvider =
                     ConfigurationFactory.authorizationProvider(PropertiesUtil.getProperties());
-            final ConfigResult result = getConfig(source, authorizationProvider);
             Filter filter;
-            if (result.status == Status.SUCCESS) {
-                if (result.pairs.length > 0) {
-                    filter = ThreadContextMapFilter.createFilter(result.pairs, "or",
-                            getOnMatch(), getOnMismatch());
+            if (pollInterval <= 0) {
+                ConfigResult result = getConfig(source, authorizationProvider);
+                if (result.status == Status.SUCCESS) {
+                    if (result.pairs.length > 0) {
+                        filter = ThreadContextMapFilter.createFilter(result.pairs, "or",
+                                getOnMatch(), getOnMismatch());
+                    } else {
+                        filter = new NoOpFilter();
+                    }
+                } else if (result.status == Status.NOT_FOUND || result.status == Status.EMPTY) {
+                    filter = new NoOpFilter();
                 } else {
+                    LOGGER.warn("Unexpected response returned on initial call: {}", result.status);
                     filter = new NoOpFilter();
                 }
-            } else if (result.status == Status.NOT_FOUND || result.status == Status.EMPTY) {
-                filter = new NoOpFilter();
             } else {
-                LOGGER.warn("Unexpected response returned on initial call: {}", result.status);
                 filter = new NoOpFilter();
             }