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() {