package org.easyb; import org.easyb.listener.ConsoleReporterListener; import org.easyb.result.Result; public class FilteredStackTraceConsoleReporter extends ConsoleReporterListener { public void gotResult(Result result) { super.gotResult(result); if (result != null && result.failed() && result.cause() != null) { StackTraceElement[] stacktrace = result.cause().getStackTrace(); System.out.println("\t An exception has occurred: "); for (int x = 0; x < stacktrace.length; x++) { if (lineOkToPrint(stacktrace[x].toString())) { System.out.println("\t\t" + stacktrace[x]); } } } } private boolean lineOkToPrint(String line) { String trimmed = line.trim(); if (trimmed.startsWith("org.codehaus.groovy") || trimmed.startsWith("groovy") || trimmed.startsWith("sun.reflect") || trimmed.startsWith("java.lang.reflect") || trimmed.startsWith("org.apache.tools.ant") || trimmed.startsWith("org.codehaus.gant") || trimmed.startsWith("gant.Gant") || trimmed.startsWith("build_gant$")) { return false; } return true; } }