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

Reply via email to