Revision: 9568
Author: [email protected]
Date: Wed Jan 19 06:45:45 2011
Log: Make production mode stack traces match JRE spec more closely
- Fix StackTraceElement#getFileName(), so that it returns null instead
of "Unknown Source"
- Fix StackTraceElement#getLineNumber(), so that it returns -1 instead of 0
- Fix StackTraceElement#toString(), so that lineNumber is omitted when it
is unknown, so that
"Unknown.foo(Unknown Source:0)" becomes "Unknown.foo(Unknown Source)"
Review at http://gwt-code-reviews.appspot.com/1295802
Review by: [email protected]
http://code.google.com/p/google-web-toolkit/source/detail?r=9568
Modified:
/trunk/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
/trunk/user/super/com/google/gwt/emul/java/lang/StackTraceElement.java
=======================================
--- /trunk/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
Thu Dec 16 11:33:51 2010
+++ /trunk/user/src/com/google/gwt/core/client/impl/StackTraceCreator.java
Wed Jan 19 06:45:45 2011
@@ -67,8 +67,8 @@
StackTraceElement[] stackTrace = new
StackTraceElement[stack.length()];
for (int i = 0, j = stackTrace.length; i < j; i++) {
- stackTrace[i] = new StackTraceElement("Unknown", stack.get(i),
- "Unknown source", 0);
+ stackTrace[i] = new StackTraceElement("Unknown", stack.get(i),
null,
+ LINE_NUMBER_UNKNOWN);
}
e.setStackTrace(stackTrace);
}
@@ -77,8 +77,8 @@
JsArrayString stack = StackTraceCreator.createStackTrace();
StackTraceElement[] stackTrace = new
StackTraceElement[stack.length()];
for (int i = 0, j = stackTrace.length; i < j; i++) {
- stackTrace[i] = new StackTraceElement("Unknown", stack.get(i),
- "Unknown source", 0);
+ stackTrace[i] = new StackTraceElement("Unknown", stack.get(i),
null,
+ LINE_NUMBER_UNKNOWN);
}
t.setStackTrace(stackTrace);
}
@@ -145,8 +145,8 @@
for (int i = 0, j = stackTrace.length; i < j; i++) {
// Locations is also backwards
String location = locations.get(j - i - 1);
- String fileName = "Unknown source";
- int lineNumber = 0;
+ String fileName = null;
+ int lineNumber = LINE_NUMBER_UNKNOWN;
if (location != null) {
int idx = location.indexOf(':');
if (idx != -1) {
@@ -361,6 +361,8 @@
}
}
+ private static final int LINE_NUMBER_UNKNOWN = -1;
+
/**
* Create a stack trace based on a JavaScriptException. This method
should
* only be called in Production Mode.
=======================================
--- /trunk/user/super/com/google/gwt/emul/java/lang/StackTraceElement.java
Tue Jul 28 09:27:08 2009
+++ /trunk/user/super/com/google/gwt/emul/java/lang/StackTraceElement.java
Wed Jan 19 06:45:45 2011
@@ -60,7 +60,8 @@
}
public String toString() {
- return className + "." + methodName + "(" + fileName + ":" + lineNumber
- + ")";
+ return className + "." + methodName + "("
+ + (fileName != null ? fileName : "Unknown Source")
+ + (lineNumber >= 0 ? ":" + lineNumber : "") + ")";
}
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors