From 691208eb996c52420a110d51ac4c50133f26dcee Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Wed, 14 May 2008 19:54:49 +0000
Subject: [PATCH] Fix for issue 3245. All sized based rotation policies are now re-evaluated on config change.
---
opends/src/server/org/opends/server/loggers/MultifileTextWriter.java | 27 +++++++++++++++++++++++++--
1 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java b/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
index ba8123a..080fadc 100644
--- a/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
+++ b/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
@@ -368,11 +368,34 @@
public ConfigChangeResult applyConfigurationChange(
SizeLimitLogRotationPolicyCfg config)
{
- if(sizeLimit == 0 || sizeLimit > config.getFileSizeLimit())
+ long newSizeLimit = Integer.MAX_VALUE;
+
+ // Go through all current size rotation policies and get the
+ // lowest size setting.
+ for(RotationPolicy policy : rotationPolicies)
{
- sizeLimit = config.getFileSizeLimit();
+ if(policy instanceof SizeBasedRotationPolicy)
+ {
+ SizeBasedRotationPolicy sizePolicy = ((SizeBasedRotationPolicy)policy);
+ if(sizePolicy.currentConfig.dn().equals(config.dn()) )
+ {
+ if(newSizeLimit > config.getFileSizeLimit())
+ {
+ newSizeLimit = config.getFileSizeLimit();
+ }
+ }
+ else
+ {
+ if(newSizeLimit > sizePolicy.currentConfig.getFileSizeLimit())
+ {
+ newSizeLimit = sizePolicy.currentConfig.getFileSizeLimit();
+ }
+ }
+ }
}
+ sizeLimit = newSizeLimit;
+
return new ConfigChangeResult(ResultCode.SUCCESS, false,
new ArrayList<Message>());
}
--
Gitblit v1.10.0