From ecfef39261a93e691fd5e52a2ce0b4b88a032bef Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Thu, 24 Jan 2008 17:19:15 +0000
Subject: [PATCH] Improved error handling in logger retention policy enforcement. The rotater thread will now handle exceptions rasied during rotation and/or retention runs.
---
opends/src/server/org/opends/server/loggers/MultifileTextWriter.java | 39 ++++++++++++++++++++++++++++-----------
1 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java b/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
index 313ce6b..6e83311 100644
--- a/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
+++ b/opends/src/server/org/opends/server/loggers/MultifileTextWriter.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ * Portions Copyright 2006-2008 Sun Microsystems, Inc.
*/
package org.opends.server.loggers;
@@ -427,18 +427,35 @@
for(RetentionPolicy retentionPolicy : retentionPolicies)
{
- int numFilesDeleted =
- retentionPolicy.deleteFiles(writer);
- if(numFilesDeleted > 0)
+ try
{
- lastCleanTime = TimeThread.getCalendar();
- lastCleanCount = numFilesDeleted;
- totalFilesCleaned++;
+ File[] files =
+ retentionPolicy.deleteFiles(writer.getNamingPolicy());
+
+ for(File file : files)
+ {
+ file.delete();
+ totalFilesCleaned++;
+ if(debugEnabled())
+ {
+ TRACER.debugInfo(retentionPolicy.toString() +
+ " cleaned up log file %s", file.toString());
+ }
+ }
+
+ if(files.length > 0)
+ {
+ lastCleanTime = TimeThread.getCalendar();
+ lastCleanCount = files.length;
+ }
}
- if (debugEnabled())
+ catch(DirectoryException de)
{
- TRACER.debugVerbose("%d files deleted by rentention policy",
- numFilesDeleted);
+ if(debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, de);
+ }
+ errorHandler.handleDeleteError(retentionPolicy, de);
}
}
}
@@ -704,7 +721,7 @@
}
/**
- * Retrieves teh total number of files cleaned in this instance of the
+ * Retrieves the total number of files cleaned in this instance of the
* Directory Server.
*
* @return The total number of files cleaned.
--
Gitblit v1.10.0