GWT 0.0.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 and moved your symbolMap files to a place accessible by your server. More concretely, you must compile with the -extra command line option, copy the symbolMaps directory to somewhere your server side code has access to it, and then set the symbolMapsDirectory in this class through the constructor, or the setter method. For example, this variable could be set to "WEB-INF/classes/symbolMaps/", if you copied the symbolMaps directory to there or compiled your application using -extra war/WEB-INF/classes/. 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 can be generated using the -extra GWT compiler 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 symbolMapsDirectory.

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

GWT 0.0.0