瀏覽代碼

HADOOP-8812. ExitUtil#terminate should print Exception#toString. Contributed by Eli Collins

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1387273 13f79535-47bb-0310-9956-ffa450edef68
Eli Collins 12 年之前
父節點
當前提交
ea6a36e2e7

+ 2 - 0
hadoop-common-project/hadoop-common/CHANGES.txt

@@ -238,6 +238,8 @@ Release 2.0.3-alpha - Unreleased
     HADOOP-8806. libhadoop.so: dlopen should be better at locating
     libsnappy.so, etc. (Colin Patrick McCabe via eli)
 
+    HADOOP-8812. ExitUtil#terminate should print Exception#toString. (eli)
+
   OPTIMIZATIONS
 
   BUG FIXES

+ 1 - 7
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/ExitUtil.java

@@ -17,9 +17,6 @@
  */
 package org.apache.hadoop.util;
 
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.classification.InterfaceAudience;
@@ -104,10 +101,7 @@ public final class ExitUtil {
    * @throws ExitException if System.exit is disabled for test purposes
    */
   public static void terminate(int status, Throwable t) throws ExitException {
-    StringWriter sw = new StringWriter();
-    t.printStackTrace(new PrintWriter(sw));
-    terminate(status, "Fatal exception with message " + t.getMessage() +
-        "\nstack trace\n" + sw.toString());
+    terminate(status, StringUtils.stringifyException(t));
   }
 
   /**

+ 2 - 6
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestEditLog.java

@@ -31,9 +31,7 @@ import java.io.File;
 import java.io.FilenameFilter;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.PrintWriter;
 import java.io.RandomAccessFile;
-import java.io.StringWriter;
 import java.net.URI;
 import java.util.ArrayList;
 import java.util.Arrays;
@@ -1238,10 +1236,8 @@ public class TestEditLog {
         }
       } catch (IOException e) {
       } catch (Throwable t) {
-        StringWriter sw = new StringWriter();
-        t.printStackTrace(new PrintWriter(sw));
-        fail("caught non-IOException throwable with message " +
-            t.getMessage() + "\nstack trace\n" + sw.toString());
+        fail("Caught non-IOException throwable " +
+             StringUtils.stringifyException(t));
       }
     } finally {
       if ((elfos != null) && (elfos.isOpen()))