From d755882f59202fe62b2ad5a141b3c044c1898aa6 Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Thu, 03 May 2007 21:55:23 +0000
Subject: [PATCH] Major changes made to the logging framework. It should resolve the following issues:
---
opends/src/server/org/opends/server/tools/RebuildIndex.java | 99 ++++++++++++++++++++++++++++++++++---------------
1 files changed, 69 insertions(+), 30 deletions(-)
diff --git a/opends/src/server/org/opends/server/tools/RebuildIndex.java b/opends/src/server/org/opends/server/tools/RebuildIndex.java
index 82b053a..a9c5a3d 100644
--- a/opends/src/server/org/opends/server/tools/RebuildIndex.java
+++ b/opends/src/server/org/opends/server/tools/RebuildIndex.java
@@ -36,12 +36,14 @@
import static org.opends.server.messages.ToolMessages.*;
import org.opends.server.config.ConfigException;
import org.opends.server.config.ConfigEntry;
-import static org.opends.server.loggers.Error.*;
-import static org.opends.server.loggers.Error.logError;
-import org.opends.server.loggers.StartupErrorLogger;
+import static org.opends.server.loggers.ErrorLogger.logError;
+import org.opends.server.loggers.ThreadFilterTextErrorLogPublisher;
+import org.opends.server.loggers.TextWriter;
+import org.opends.server.loggers.ErrorLogger;
import static org.opends.server.messages.MessageHandler.getMessage;
import static org.opends.server.util.ServerConstants.*;
import static org.opends.server.util.StaticUtils.*;
+import org.opends.server.util.StaticUtils;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.CoreConfigManager;
import org.opends.server.core.LockFileManager;
@@ -62,6 +64,8 @@
*/
public class RebuildIndex
{
+ private static DN publisherDN = null;
+
/**
* Processes the command-line arguments and invokes the rebuild process.
*
@@ -69,6 +73,28 @@
*/
public static void main(String[] args)
{
+ int retCode = mainRebuildIndex(args);
+
+ if(publisherDN != null)
+ {
+ ErrorLogger.removeErrorLogPublisher(publisherDN);
+ }
+
+ if(retCode != 0)
+ {
+ System.exit(retCode);
+ }
+ }
+
+ /**
+ * Processes the command-line arguments and invokes the rebuild process.
+ *
+ * @param args The command-line arguments provided to this program.
+ *
+ * @return The error code.
+ */
+ public static int mainRebuildIndex(String[] args)
+ {
// Define the command-line arguments that may be used with this program.
StringArgument configClass = null;
StringArgument configFile = null;
@@ -132,7 +158,7 @@
String message = getMessage(msgID, ae.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
@@ -148,14 +174,14 @@
System.err.println(wrapText(message, MAX_LINE_WIDTH));
System.err.println(argParser.getUsage());
- System.exit(1);
+ return 1;
}
// If we should just display usage information, then print it and exit.
if (argParser.usageDisplayed())
{
- System.exit(0);
+ return 0;
}
@@ -166,7 +192,7 @@
if (numArgs == 0)
{
System.out.println(argParser.getUsage());
- System.exit(1);
+ return 1;
}
@@ -177,7 +203,7 @@
System.err.println(wrapText(message, MAX_LINE_WIDTH));
System.out.println(argParser.getUsage());
- System.exit(1);
+ return 1;
}
// Perform the initial bootstrap of the Directory Server and process the
@@ -194,7 +220,7 @@
int msgID = MSGID_SERVER_BOOTSTRAP_ERROR;
String message = getMessage(msgID, getExceptionMessage(e));
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
try
@@ -207,14 +233,14 @@
int msgID = MSGID_CANNOT_LOAD_CONFIG;
String message = getMessage(msgID, ie.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (Exception e)
{
int msgID = MSGID_CANNOT_LOAD_CONFIG;
String message = getMessage(msgID, getExceptionMessage(e));
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
@@ -229,21 +255,21 @@
int msgID = MSGID_CANNOT_LOAD_SCHEMA;
String message = getMessage(msgID, ce.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (InitializationException ie)
{
int msgID = MSGID_CANNOT_LOAD_SCHEMA;
String message = getMessage(msgID, ie.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (Exception e)
{
int msgID = MSGID_CANNOT_LOAD_SCHEMA;
String message = getMessage(msgID, getExceptionMessage(e));
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
@@ -258,21 +284,21 @@
int msgID = MSGID_CANNOT_INITIALIZE_CORE_CONFIG;
String message = getMessage(msgID, ce.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (InitializationException ie)
{
int msgID = MSGID_CANNOT_INITIALIZE_CORE_CONFIG;
String message = getMessage(msgID, ie.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (Exception e)
{
int msgID = MSGID_CANNOT_INITIALIZE_CORE_CONFIG;
String message = getMessage(msgID, getExceptionMessage(e));
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
@@ -286,30 +312,41 @@
int msgID = MSGID_CANNOT_INITIALIZE_CRYPTO_MANAGER;
String message = getMessage(msgID, ce.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (InitializationException ie)
{
int msgID = MSGID_CANNOT_INITIALIZE_CRYPTO_MANAGER;
String message = getMessage(msgID, ie.getMessage());
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
catch (Exception e)
{
int msgID = MSGID_CANNOT_INITIALIZE_CRYPTO_MANAGER;
String message = getMessage(msgID, getExceptionMessage(e));
System.err.println(wrapText(message, MAX_LINE_WIDTH));
- System.exit(1);
+ return 1;
}
// FIXME -- Install a custom logger to capture information about the state
// of the verify process.
- StartupErrorLogger startupLogger = new StartupErrorLogger();
- startupLogger.initializeErrorLogger(null);
- addErrorLogger(startupLogger);
+ try
+ {
+ publisherDN = DN.decode("cn=Custom Logger for RebuildIndex");
+ ThreadFilterTextErrorLogPublisher publisher =
+ new ThreadFilterTextErrorLogPublisher(Thread.currentThread(),
+ new TextWriter.STDOUT());
+ ErrorLogger.addErrorLogPublisher(publisherDN, publisher);
+
+ }
+ catch(Exception e)
+ {
+ System.err.println("Error installing the custom error logger: " +
+ StaticUtils.stackTraceToSingleLineString(e));
+ }
// Decode the base DN provided by the user.
DN rebuildBaseDN = null;
@@ -324,7 +361,7 @@
de.getErrorMessage());
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR, message,
msgID);
- System.exit(1);
+ return 1;
}
catch (Exception e)
{
@@ -333,7 +370,7 @@
getExceptionMessage(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR, message,
msgID);
- System.exit(1);
+ return 1;
}
// Get information about the backends defined in the server.
@@ -370,7 +407,7 @@
String message = getMessage(msgID, baseDNString.getValue());
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
message, msgID);
- System.exit(1);
+ return 1;
}
break;
}
@@ -383,7 +420,7 @@
String message = getMessage(msgID, baseDNString.getValue());
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR, message,
msgID);
- System.exit(1);
+ return 1;
}
if (!(backend instanceof BackendImpl))
@@ -392,7 +429,7 @@
String message = getMessage(msgID);
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR, message,
msgID);
- System.exit(1);
+ return 1;
}
// Initialize the rebuild configuration.
@@ -416,7 +453,7 @@
String.valueOf(failureReason));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
message, msgID);
- return;
+ return 1;
}
}
catch (Exception e)
@@ -426,7 +463,7 @@
getExceptionMessage(e));
logError(ErrorLogCategory.BACKEND, ErrorLogSeverity.SEVERE_ERROR,
message, msgID);
- return;
+ return 1;
}
// Launch the rebuild process.
@@ -467,5 +504,7 @@
message, msgID);
}
}
+
+ return 0;
}
}
--
Gitblit v1.10.0