You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2004/09/28 03:49:44 UTC
svn commit: rev 47370 - geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/main
Author: dblevins
Date: Mon Sep 27 18:49:43 2004
New Revision: 47370
Modified:
geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/main/ExceptionUtil.java
Log:
Don't exclude the top of the trace if it starts with things in the exclude list.
Modified: geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/main/ExceptionUtil.java
==============================================================================
--- geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/main/ExceptionUtil.java (original)
+++ geronimo/trunk/modules/system/src/java/org/apache/geronimo/system/main/ExceptionUtil.java Mon Sep 27 18:49:43 2004
@@ -39,22 +39,39 @@
StackTraceElement[] trace = t.getStackTrace();
ArrayList list = new ArrayList();
- TRIM: for (int i = 0; i < trace.length; i++) {
- String className = trace[i].getClassName();
- for (int j = 0; j < excludedPackages.length; j++) {
- if (className.startsWith(excludedPackages[j])) {
- continue TRIM;
- }
- }
- for (int j = 0; j < excludedStrings.length; j++) {
- if (className.indexOf(excludedStrings[j]) != -1) {
- continue TRIM;
- }
+ boolean skip = true;
+
+ int i = 0;
+
+ // If the start of the stack trace is something
+ // on the exclude list, don't exclude it.
+ for (; i < trace.length && skip; i++) {
+ skip = skip && isExcluded(trace[i].getClassName());
+ }
+ list.add(trace[i-1]);
+
+
+ for (; i < trace.length; i++) {
+ if ( !isExcluded(trace[i].getClassName()) ){
+ list.add(trace[i]);
}
- list.add(trace[i]);
}
t.setStackTrace((StackTraceElement[]) list.toArray(new StackTraceElement[0]));
trimStackTrace(t.getCause());
+ }
+
+ private static boolean isExcluded(String className) {
+ for (int j = 0; j < excludedPackages.length; j++) {
+ if (className.startsWith(excludedPackages[j])) {
+ return true;
+ }
+ }
+ for (int j = 0; j < excludedStrings.length; j++) {
+ if (className.indexOf(excludedStrings[j]) != -1) {
+ return true;
+ }
+ }
+ return false;
}
}