1 17 package org.apache.geronimo.system.main; 18 19 import java.util.ArrayList ; 20 21 24 public class ExceptionUtil { 25 26 private static final String [] excludedPackages = { 27 "org.apache.geronimo.gbean.jmx.", "mx4j.", "net.sf.cglib.reflect.", "sun.reflect." 28 }; 29 30 private static final String [] excludedStrings = { 31 "$$EnhancerByCGLIB$$","$$FastClassByCGLIB$$" 32 }; 33 34 public static void trimStackTrace(Throwable t) { 35 if (t == null) { 36 return; 37 } 38 39 StackTraceElement [] trace = t.getStackTrace(); 40 ArrayList list = new ArrayList (); 41 42 boolean skip = true; 43 44 int i = 0; 45 46 for (; i < trace.length && skip; i++) { 49 skip = skip && isExcluded(trace[i].getClassName()); 50 } 51 list.add(trace[i-1]); 52 53 54 for (; i < trace.length; i++) { 55 if ( !isExcluded(trace[i].getClassName()) ){ 56 list.add(trace[i]); 57 } 58 } 59 60 t.setStackTrace((StackTraceElement []) list.toArray(new StackTraceElement [0])); 61 trimStackTrace(t.getCause()); 62 } 63 64 private static boolean isExcluded(String className) { 65 for (int j = 0; j < excludedPackages.length; j++) { 66 if (className.startsWith(excludedPackages[j])) { 67 return true; 68 } 69 } 70 for (int j = 0; j < excludedStrings.length; j++) { 71 if (className.indexOf(excludedStrings[j]) != -1) { 72 return true; 73 } 74 } 75 return false; 76 } 77 } 78 | Popular Tags |