We are having a real hard time getting our stack trace deobfuscation to 
work correctly.

Whenever we have an exception, our stack trace looks like this:

2013-05-13T20:43:36.998257+00:00 stg-cardit1 hermione: ERROR:Unhandled 
> client exception[0]java.lang.RuntimeException: Crash 
> 2013-05-13T20:43:36.998386+00:00 stg-cardit1 hermione: Caused by: 
> 2013-05-13T20:43:36.998479+00:00 stg-cardit1 hermione: EXCEPTION: 
> Crash(java.lang.RuntimeException) 
> 2013-05-13T20:43:36.998567+00:00 stg-cardit1 hermione: 
> Unknown.Pp(StackTraceCreator.java:174) 
> 2013-05-13T20:43:36.998653+00:00 stg-cardit1 hermione: 
> Unknown.qd(StackTraceCreator.java:508) 
> 2013-05-13T20:43:36.998739+00:00 stg-cardit1 hermione: 
> Unknown.td(Exception.java:29) 
> 2013-05-13T20:43:36.998824+00:00 stg-cardit1 hermione: 
> Unknown.wo(RuntimeException.java:29) 
> 2013-05-13T20:43:36.998910+00:00 stg-cardit1 hermione: 
> Unknown.Mid(CardServiceImpl.java:207) 
> 2013-05-13T20:43:36.998996+00:00 stg-cardit1 hermione: 
> Unknown.u4c(MasterActivity.java:404) 
> 2013-05-13T20:43:36.999136+00:00 stg-cardit1 hermione: 
> Unknown.m5c(MasterActivity.java:368) 
> 2013-05-13T20:43:36.999241+00:00 stg-cardit1 hermione: 
> Unknown.p5c(MasterActivity.java:367) 
> 2013-05-13T20:43:36.999332+00:00 stg-cardit1 hermione: 
> Unknown.Xjd(FlickrServiceImpl.java:79) 
> 2013-05-13T20:43:36.999418+00:00 stg-cardit1 hermione: 
> Unknown.dkd(FlickrServiceImpl.java:92) 
> 2013-05-13T20:43:36.999503+00:00 stg-cardit1 hermione: 
> Unknown.akd(FlickrServiceImpl.java:49) 
> 2013-05-13T20:43:36.999588+00:00 stg-cardit1 hermione: 
> Unknown.rBd(SevogleRequestBuilder.java:29) 
> 2013-05-13T20:43:36.999673+00:00 stg-cardit1 hermione: 
> Unknown.uE(Request.java:258) 
> 2013-05-13T20:43:36.999797+00:00 stg-cardit1 hermione: 
> Unknown.gF(RequestBuilder.java:412) 
> 2013-05-13T20:43:36.999893+00:00 stg-cardit1 hermione: 
> Unknown.anonymous(XMLHttpRequest.java:351) 
> 2013-05-13T20:43:36.999980+00:00 stg-cardit1 hermione: 
> Unknown.hp(Impl.java:189) 
> 2013-05-13T20:43:37.000065+00:00 stg-cardit1 hermione: 
> Unknown.kp(Impl.java:242) 
> 2013-05-13T20:43:37.000150+00:00 stg-cardit1 hermione: 
> Unknown.anonymous(Impl.java:70) 
>

I have updated our gwt.xml file to have the following lines:

 <!-- Stack track info -->
>
> <set-property name="compiler.stackMode" value="emulated" />
>
> <set-property name="compiler.useSourceMaps" value="true" />
>
> <set-configuration-property name=
> "compiler.emulatedStack.recordLineNumbers" value="true" />
>
> <set-configuration-property name="compiler.emulatedStack.recordFileNames" 
> value="true" />
>

The first problem we ran into is that gwtc was creating the symbolmap file 
with the name "null_symbolMap0.json"

We hand coded our ant build script to have it put the permuation name into 
the file name

WEB-INF/symbolMaps/${permutation_name}_sourceMap0.json
>
I also tested it with

> WEB-INF/symbolMaps/${permutation_name}.sourceMap0.json 


and this is then inside the .war file.

When we go to call this, we use the following commands

>         getServletContext().getRealPath("/");
>
>         StackTraceDeobfuscator deob = 
> newStackTraceDeobfuscator(getServletContext().getRealPath(
> "/WEB-INF/symbolMaps")); 
>
 

> StackTraceElement[] elements = 
> deob.deobfuscateStackTrace(jsElements.toArray(new StackTraceElement[0]),
>
>                                                                   
> gwtPermutationStrongName);
>
 
Where gwtPermutationStrongName is identical to the name in the file. 

The json in the symbol map looks like this:

> {
> "version":3,
> "file":"sourceMap0",
> "lineCount":8439,
> "mappings":"A;AAwCA,aAAA,CAAA,CAAA......AA,IAAA;",
>
> "sources":["com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/SeedUtil.java","com/google/gwt/emul/java/lang/Object.java",...
> ,"com/google/gwt/dev/jjs/intrinsic/com/google/gwt/lang/ClassLiteralHolder.java"],
> "names":[]
> }


Looking at the sourcemap, it appears that the "names" field is empty.  But I'm 
not sure what to do about that, since I've got the flags set above.


The build is happening in ANT, with the following 


<property name="gwt.args" value="-localWorkers 8 -extra 
> war/WEB-INF/classes/" />
> <java failonerror="true" fork="true" classname=
> "com.google.gwt.dev.Compiler">
> <classpath>
> <pathelement location="war/WEB-INF/classes/*.jar" />
> <pathelement location="war/WEB-INF/lib/*.jar" />
> <pathelement location="src" />
> <pathelement location="gen" />
> <path refid="project.class.path" />
> <pathelement location="${gwt.sdk}/validation-api-1.0.0.GA.jar" />
> <pathelement location="${gwt.sdk}/validation-api-1.0.0.GA-sources.jar" />
> </classpath>
> <!-- add jvmarg -Xss16M or similar if you see a StackOverflowError -->
> <jvmarg value="-Xmx2524M" />
>             <!-- <arg line="-compileReport" />
>             <arg line="-XsoycDetailed" /> -->
> <arg line="-war" />
> <arg value="war" />
> <!-- Additional arguments like -style PRETTY or -logLevel DEBUG -->
> <arg line="${gwt.args}" />
> <arg value="com.sevogle.hermione.Hermione" />
> </java>

 I've seen some comments that if you have the closure compiler enable, that 
the stack trace functionality doesn't work, but unless it's enable by 
default, we don't have it enabled.

https://code.google.com/p/google-web-toolkit/issues/detail?id=7803


You can see the two files here:
https://www.dropbox.com/sh/h1bwe9e8jr2040x/RVlEdqrvHg

Thanks in advance for your time.

Adam

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to