From f0cb0b1a855b8efae729d9308d5deea4fcb89b2c Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 20 Aug 2010 13:30:13 +0000
Subject: [PATCH] Fix an issue with the uncaught exception handler, that was registered during import but never cleared. Also improve the logging when called

---
 opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
index ba6e7c8..ed59036 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/backends/jeb/importLDIF/Importer.java
@@ -29,10 +29,13 @@
 
 import static org.opends.messages.JebMessages.*;
 import static org.opends.server.loggers.ErrorLogger.logError;
+import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
+import static org.opends.server.loggers.debug.DebugLogger.getTracer;
 import static org.opends.server.util.DynamicConstants.BUILD_ID;
 import static org.opends.server.util.DynamicConstants.REVISION_NUMBER;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.getFileForPath;
+import static org.opends.server.util.StaticUtils.stackTraceToString;
 
 import java.io.*;
 import java.nio.ByteBuffer;
@@ -53,6 +56,7 @@
 import org.opends.server.config.ConfigException;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.extensions.DiskSpaceMonitor;
+import org.opends.server.loggers.debug.DebugTracer;
 import org.opends.server.types.*;
 import org.opends.server.util.LDIFReader;
 import org.opends.server.util.Platform;
@@ -68,6 +72,11 @@
  */
 public final class Importer implements DiskSpaceMonitorHandler
 {
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = getTracer();
+
   private static final int TIMER_INTERVAL = 10000;
   private static final int KB = 1024;
   private static final int MB =  (KB * KB);
@@ -2018,9 +2027,6 @@
 
     /**
      * Finishes this task.
-     *
-     * @throws Exception
-     *           If an exception occurred.
      */
     public void endWriteTask()
     {
@@ -2251,6 +2257,9 @@
       finally
       {
         endWriteTask();
+
+        // Clear the default exception handler.
+        Thread.setDefaultUncaughtExceptionHandler(null);
       }
       return null;
     }
@@ -3339,8 +3348,6 @@
     /**
      * Perform rebuild index processing.
      *
-     * @throws InitializationException
-     *           If an initialization error occurred.
      * @throws DatabaseException
      *           If an database error occurred.
      * @throws InterruptedException
@@ -4952,9 +4959,14 @@
      * {@inheritDoc}
      */
     public void uncaughtException(Thread t, Throwable e) {
-      Message message =  ERR_JEB_IMPORT_UNCAUGHT_EXCEPTION.get(e.getMessage());
+      if (debugEnabled())
+      {
+        TRACER.debugCaught(DebugLogLevel.ERROR, e);
+      }
+
+      Message message =
+        ERR_JEB_IMPORT_UNCAUGHT_EXCEPTION.get(stackTraceToString(e));
       logError(message);
-      e.printStackTrace();
       System.exit(1);
     }
   }

--
Gitblit v1.10.0