Groovy 2.2.0

org.codehaus.groovy.runtime
[Java] Class StackTraceUtils

java.lang.Object
  org.codehaus.groovy.runtime.StackTraceUtils

public class StackTraceUtils
extends Object

Originally was grails.utils.GrailsUtils, removed some grails specific stuff. Utility methods removing internal lines from stack traces

Authors:
Graeme Rocher
Version:
\$Revision: 5544 \$
Since:
1.5


Field Summary
static String STACK_LOG_NAME

 
Method Summary
static void addClassTest(Closure test)

Adds a groovy.lang.Closure to test whether the stack trace element should be added or not.

static Throwable deepSanitize(Throwable t)

Sanitize the exception and ALL nested causes

static Throwable extractRootCause(Throwable t)

Extracts the root cause of the exception, no matter how nested it is

static boolean isApplicationClass(String className)

static void printSanitizedStackTrace(Throwable t, PrintWriter p)

static void printSanitizedStackTrace(Throwable t)

static Throwable sanitize(Throwable t)

Remove all apparently groovy-internal trace entries from the exception instance

static Throwable sanitizeRootCause(Throwable t)

Get the root cause of an exception and sanitize it for display to the user

 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Field Detail

STACK_LOG_NAME

public static final String STACK_LOG_NAME


 
Method Detail

addClassTest

public static void addClassTest(Closure test)
Adds a groovy.lang.Closure to test whether the stack trace element should be added or not.

The groovy.lang.Closure will be given the class name as parameter. the return value decides if the element will be added or not.

Groovy truth will be used to determine true and false, null is excluded from defaulting to false here. If all tests have been executed and all of them skipped, then the groovy standard filtering will take place.
Parameters:
test - the testing groovy.lang.Closure


deepSanitize

public static Throwable deepSanitize(Throwable t)
Sanitize the exception and ALL nested causes

This will MODIFY the stacktrace of the exception instance and all its causes irreversibly

Parameters:
t - a throwable
Returns:
The root cause exception instances, with stack trace modified to filter out groovy runtime classes


extractRootCause

public static Throwable extractRootCause(Throwable t)
Extracts the root cause of the exception, no matter how nested it is
Parameters:
t - a Throwable
Returns:
The deepest cause of the exception that can be found


isApplicationClass

public static boolean isApplicationClass(String className)


printSanitizedStackTrace

public static void printSanitizedStackTrace(Throwable t, PrintWriter p)


printSanitizedStackTrace

public static void printSanitizedStackTrace(Throwable t)


sanitize

public static Throwable sanitize(Throwable t)
Remove all apparently groovy-internal trace entries from the exception instance

This modifies the original instance and returns it, it does not clone

Parameters:
t - the Throwable whose stack trace we want to sanitize
Returns:
The original Throwable but with a sanitized stack trace


sanitizeRootCause

public static Throwable sanitizeRootCause(Throwable t)
Get the root cause of an exception and sanitize it for display to the user

This will MODIFY the stacktrace of the root cause exception object and return it

Parameters:
t - a throwable
Returns:
The root cause exception instance, with its stace trace modified to filter out groovy runtime classes


 

Copyright © 2003-2013 The Codehaus. All rights reserved.