Revision: 10297
Author: ahume...@google.com
Date: Wed Jun 8 10:11:34 2011
Log: Fixes a bug in StackTraceDeobfuscator where line numbers from the
symbol map were being used in resymbolization only if the line number from
StackTraceElement is 0, where it should be used if the line number is -1,
per StackTraceElement's javadoc:
http://download.oracle.com/javase/6/docs/api/java/lang/StackTraceElement.html
Review at http://gwt-code-reviews.appspot.com/1457801
http://code.google.com/p/google-web-toolkit/source/detail?r=10297
Modified:
/trunk/user/src/com/google/gwt/logging/server/StackTraceDeobfuscator.java
=======================================
---
/trunk/user/src/com/google/gwt/logging/server/StackTraceDeobfuscator.java
Wed Feb 23 11:44:20 2011
+++
/trunk/user/src/com/google/gwt/logging/server/StackTraceDeobfuscator.java
Wed Jun 8 10:11:34 2011
@@ -53,6 +53,10 @@
private static Pattern JsniRefPattern =
Pattern.compile("@?([^:]+)::([^(]+)(\\((.*)\\))?");
+ // The javadoc for StackTraceElement.getLineNumber() says it returns -1
when
+ // the line number is unavailable
+ private static final int LINE_NUMBER_UNKNOWN = -1;
+
private File symbolMapsDirectory;
private Map<String, SymbolMap> symbolMaps =
@@ -136,11 +140,12 @@
int lineNumber = ste.getLineNumber();
/*
- * When lineNumber is zero, either because compiler.stackMode is
not
- * emulated or compiler.emulatedStack.recordLineNumbers is false,
use
- * the method declaration line number from the symbol map.
+ * When lineNumber is LINE_NUMBER_UNKNOWN, either because
+ * compiler.stackMode is not emulated or
+ * compiler.emulatedStack.recordLineNumbers is false, use the
method
+ * declaration line number from the symbol map.
*/
- if (lineNumber == 0) {
+ if (lineNumber == LINE_NUMBER_UNKNOWN) {
lineNumber = Integer.parseInt(parts[4]);
}
--
http://groups.google.com/group/Google-Web-Toolkit-Contributors