GWT 2.4.0

com.google.gwt.logging.server
Class StackTraceDeobfuscator

java.lang.Object
  extended by com.google.gwt.logging.server.StackTraceDeobfuscator

public class StackTraceDeobfuscator
extends java.lang.Object

Deobfuscates stack traces on the server side. This class requires that you have turned on emulated stack traces, via <set-property name="compiler.stackMode" value="emulated" /> in your .gwt.xml module file, and moved your symbol map files to a location accessible by your server sever side code. You can use the GWT compiler -deploy command line argument to specify the location of the folder into which the generated symbolMaps directory is written. By default, the final symbolMaps directory is war/WEB-INF/deploy/yourmodulename/symbolMaps/. Pass the resulting directory location into this class' symbolMapsDirectory constructor or setSymbolMapsDirectory(String) setter method. TODO(unnurg): Combine this code with similar code in JUnitHostImpl


Constructor Summary
StackTraceDeobfuscator(java.lang.String symbolMapsDirectory)
          Constructor, which takes a symbolMaps directory as its argument.
 
Method Summary
 java.util.logging.LogRecord deobfuscateLogRecord(java.util.logging.LogRecord lr, java.lang.String strongName)
          Best effort resymbolization of a log record's stack trace.
 java.lang.StackTraceElement[] deobfuscateStackTrace(java.lang.StackTraceElement[] st, java.lang.String strongName)
          Convenience method which resymbolizes an entire stack trace to extent possible.
protected  java.io.InputStream getSymbolMapInputStream(java.lang.String permutationStrongName)
          Retrieves a new InputStream for the given permutation strong name.
 java.lang.StackTraceElement resymbolize(java.lang.StackTraceElement ste, java.lang.String strongName)
          Best effort resymbolization of a a single stack trace element.
 void setSymbolMapsDirectory(java.lang.String symbolMapsDirectory)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StackTraceDeobfuscator

public StackTraceDeobfuscator(java.lang.String symbolMapsDirectory)
Constructor, which takes a symbolMaps directory as its argument. Symbol maps are generated into the location specified by the GWT compiler -deploy command line argument.

Parameters:
symbolMapsDirectory - the symbolMaps directory with, or without trailing directory separator character
Method Detail

deobfuscateLogRecord

public java.util.logging.LogRecord deobfuscateLogRecord(java.util.logging.LogRecord lr,
                                                        java.lang.String strongName)
Best effort resymbolization of a log record's stack trace.

Parameters:
lr - the log record to resymbolize
strongName - the GWT permutation strong name
Returns:
the best effort resymbolized log record

deobfuscateStackTrace

public java.lang.StackTraceElement[] deobfuscateStackTrace(java.lang.StackTraceElement[] st,
                                                           java.lang.String strongName)
Convenience method which resymbolizes an entire stack trace to extent possible.

Parameters:
st - the stack trace to resymbolize
strongName - the GWT permutation strong name
Returns:
a best effort resymbolized stack trace

resymbolize

public java.lang.StackTraceElement resymbolize(java.lang.StackTraceElement ste,
                                               java.lang.String strongName)
Best effort resymbolization of a a single stack trace element.

Parameters:
ste - the stack trace element to resymbolize
strongName - the GWT permutation strong name
Returns:
the best effort resymbolized stack trace element

setSymbolMapsDirectory

public void setSymbolMapsDirectory(java.lang.String symbolMapsDirectory)

getSymbolMapInputStream

protected java.io.InputStream getSymbolMapInputStream(java.lang.String permutationStrongName)
                                               throws java.io.IOException
Retrieves a new InputStream for the given permutation strong name. This implementation, which subclasses may override, returns a InputStream for the permutation-strong-name.symbolMap file in the symbolMaps directory.

Parameters:
permutationStrongName - the GWT permutation strong name
Returns:
a new InputStream
Throws:
java.io.IOException

GWT 2.4.0