Author: delafran
Date: Mon Mar 28 12:38:33 2005
New Revision: 159304

URL: http://svn.apache.org/viewcvs?view=rev&rev=159304
Log:
Added help method for causedBy

Modified:
    
geronimo/trunk/modules/interop/src/java/org/apache/geronimo/interop/util/ExceptionUtil.java

Modified: 
geronimo/trunk/modules/interop/src/java/org/apache/geronimo/interop/util/ExceptionUtil.java
URL: 
http://svn.apache.org/viewcvs/geronimo/trunk/modules/interop/src/java/org/apache/geronimo/interop/util/ExceptionUtil.java?view=diff&r1=159303&r2=159304
==============================================================================
--- 
geronimo/trunk/modules/interop/src/java/org/apache/geronimo/interop/util/ExceptionUtil.java
 (original)
+++ 
geronimo/trunk/modules/interop/src/java/org/apache/geronimo/interop/util/ExceptionUtil.java
 Mon Mar 28 12:38:33 2005
@@ -74,6 +74,35 @@
         return "\nCaused by: " + getStackTrace(ex) + getDivider();
     }
 
+    public static String causedBy(String stackTrace)
+    {
+        return "\nCaused by: " + getTraceLines(stackTrace);
+    }
+
+    public static Throwable getCause(Throwable ex)
+    {
+        for (;;)
+        {
+            if (ex instanceof SystemException)
+            {
+                SystemException se = (SystemException)ex;
+                if (se.getCause() != null && se.getMessage() == null)
+                {
+                    ex = se.getCause();
+                }
+                else
+                {
+                    break;
+                }
+            }
+            else
+            {
+                break;
+            }
+        }
+        return ex;
+    }
+
     public static String getCauseChain(Throwable ex) {
         String stackTrace = getStackTrace(ex);
         return getCauseChain(stackTrace);
@@ -103,6 +132,37 @@
         java.io.PrintWriter pw = new java.io.PrintWriter(sw);
         ex.printStackTrace(pw);
         return sw.toString().trim();
+    }
+
+    public static String getTraceLines(String stackTrace)
+    {
+        try
+        {
+            BufferedReader input = new BufferedReader(new 
StringReader(stackTrace));
+            StringBuffer output = new StringBuffer(100);
+            String line;
+            boolean first = true;
+            while ((line = input.readLine()) != null)
+            {
+                line = line.trim();
+                if (line.length() != 0)
+                {
+                    if (! first)
+                    {
+                        output.append("| ");
+                    }
+                    first = false;
+                    output.append(line);
+                    output.append('\n');
+                }
+            }
+            return output.toString();
+        }
+        catch (Exception ex2)
+        {
+            ex2.printStackTrace();
+            return stackTrace;
+        }
     }
 
     public static String getCurrentStackTrace() {


Reply via email to