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 2017/01/03 05:17:28 UTC
logging-log4j2 git commit: Ensure the triggering policy is replaced
Repository: logging-log4j2
Updated Branches:
refs/heads/master 734fc8202 -> f282f9444
Ensure the triggering policy is replaced
Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo
Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/f282f944
Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/f282f944
Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/f282f944
Branch: refs/heads/master
Commit: f282f944448400648ffdcd78b9291b48421de0d0
Parents: 734fc82
Author: Ralph Goers <rg...@nextiva.com>
Authored: Mon Jan 2 22:17:21 2017 -0700
Committer: Ralph Goers <rg...@nextiva.com>
Committed: Mon Jan 2 22:17:21 2017 -0700
----------------------------------------------------------------------
.../appender/rolling/RollingFileManager.java | 21 +++++++++++++-------
1 file changed, 14 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/f282f944/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
----------------------------------------------------------------------
diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
index 9dc7a16..525d8ad 100644
--- a/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
+++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/appender/rolling/RollingFileManager.java
@@ -46,6 +46,7 @@ import org.apache.logging.log4j.core.util.Constants;
public class RollingFileManager extends FileManager {
private static RollingFileManagerFactory factory = new RollingFileManagerFactory();
+ private static final int MAX_TRIES = 3;
protected long size;
private long initialTime;
@@ -222,13 +223,19 @@ public class RollingFileManager extends FileManager {
public void setTriggeringPolicy(final TriggeringPolicy triggeringPolicy) {
triggeringPolicy.initialize(this);
TriggeringPolicy policy = this.triggeringPolicy;
- triggeringPolicyUpdater.compareAndSet(this, this.triggeringPolicy, triggeringPolicy);
- if (triggeringPolicy instanceof LifeCycle) {
- ((LifeCycle) triggeringPolicy).start();
- }
- if (policy instanceof LifeCycle) {
- ((LifeCycle) policy).stop();
- }
+ int count = 0;
+ boolean policyUpdated = false;
+ do {
+ ++count;
+ } while (!(policyUpdated = triggeringPolicyUpdater.compareAndSet(this, this.triggeringPolicy, triggeringPolicy))
+ && count < MAX_TRIES);
+ if (policyUpdated)
+ if (triggeringPolicy instanceof LifeCycle) {
+ ((LifeCycle) triggeringPolicy).start();
+ }
+ if (policy instanceof LifeCycle) {
+ ((LifeCycle) policy).stop();
+ }
}
public void setRolloverStrategy(final RolloverStrategy rolloverStrategy) {