LOG4J2-1121 bugfixes - Unconditional waiting strategy sleep time must be non-zero - Make unconditional wait time user-configurable - AwaitCompletionReliabilityStrategy only accepts non-null LoggerConfig
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/3825b086 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/3825b086 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/3825b086 Branch: refs/heads/master Commit: 3825b08615446c0ca014d0e8415cdd0a5e022dd2 Parents: d524ef3 Author: rpopma <[email protected]> Authored: Sun Sep 20 14:09:57 2015 +0900 Committer: rpopma <[email protected]> Committed: Sun Sep 20 14:09:57 2015 +0900 ---------------------------------------------------------------------- .../core/config/AwaitCompletionReliabilityStrategy.java | 3 ++- .../config/AwaitUnconditionallyReliabilityStrategy.java | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3825b086/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java index 90a1108..4251cfa 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitCompletionReliabilityStrategy.java @@ -17,6 +17,7 @@ package org.apache.logging.log4j.core.config; +import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; @@ -43,7 +44,7 @@ public class AwaitCompletionReliabilityStrategy implements ReliabilityStrategy { private final LoggerConfig loggerConfig; public AwaitCompletionReliabilityStrategy(final LoggerConfig loggerConfig) { - this.loggerConfig = loggerConfig; + this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null"); } /* (non-Javadoc) http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/3825b086/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java index 5f8c204..750af31 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/AwaitUnconditionallyReliabilityStrategy.java @@ -24,6 +24,7 @@ import org.apache.logging.log4j.Marker; import org.apache.logging.log4j.core.LogEvent; import org.apache.logging.log4j.message.Message; import org.apache.logging.log4j.status.StatusLogger; +import org.apache.logging.log4j.util.PropertiesUtil; import org.apache.logging.log4j.util.Supplier; /** @@ -31,12 +32,18 @@ import org.apache.logging.log4j.util.Supplier; */ public class AwaitUnconditionallyReliabilityStrategy implements ReliabilityStrategy { - private static final long SLEEP_MILLIS = 0; + private static final long DEFAULT_SLEEP_MILLIS = 5000; // 5 seconds + private static final long SLEEP_MILLIS = sleepMillis(); private final LoggerConfig loggerConfig; public AwaitUnconditionallyReliabilityStrategy(final LoggerConfig loggerConfig) { this.loggerConfig = Objects.requireNonNull(loggerConfig, "loggerConfig is null"); } + + private static long sleepMillis() { + return PropertiesUtil.getProperties().getLongProperty("log4j.waitMillisBeforeStopOldConfig", + DEFAULT_SLEEP_MILLIS); + } /* * (non-Javadoc)
