Using GWT 2.8.2.  I started seeing errors being picked up by 
the GWT.setUncaughtExceptionHandler.  So, I implemented 
the StackTraceDeobfuscator by adding the following to my .gwt.xml:

<set-property name="compiler.stackMode" value="emulated" />
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" 
value="true" />
<set-configuration-property name="compiler.emulatedStack.recordFileNames" 
value="true"/>

Passing the exception back to the server RemoteServiceServlet, and doing 
the following:

String path = getServletConfig().getServletContext().getRealPath(
"/WEB-INF/deploy/<module>/symbolMaps/");
StackTraceDeobfuscator deobfuscator = StackTraceDeobfuscator.fromFileSystem(
path);
String strongName = getThreadLocalRequest().getHeader(RpcRequestBuilder.
STRONG_NAME_HEADER);

// Deobfuscate the stack trace
deobfuscator.deobfuscateStackTrace(exception, strongName);

// Convert the stack trace to a string
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
exception.printStackTrace(pw);
stackTrace = sw.toString();

Now, when I look at what is saved in stackTrace, it is things like this:

java.lang.ClassCastException
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(
NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
instantiate(ServerSerializationStreamReader.java:1110)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
deserialize(ServerSerializationStreamReader.java:682)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
readObject(ServerSerializationStreamReader.java:592)
 at com.google.gwt.user.server.rpc.impl.
ServerSerializationStreamReader$ValueReader$8.readValue(
ServerSerializationStreamReader.java:149)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
deserializeValue(ServerSerializationStreamReader.java:434)
 at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:312)
 at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(
RemoteServiceServlet.java:296)
 at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(
RemoteServiceServlet.java:373)
 at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(
AbstractRemoteServiceServlet.java:62)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
 at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1772)
 at team.drift.server.ServletFilter.doFilter(ServletFilter.java:37)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1759)
 at com.google.apphosting.utils.servlet.JdbcMySqlConnectionCleanupFilter.
doFilter(JdbcMySqlConnectionCleanupFilter.java:60)
 at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(
ServletHandler.java:1759)
 at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:
582)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java
:143)
 at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:
524)
 at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.
java:226)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java
:143)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.
java:134)
 at com.google.apphosting.runtime.jetty9.ParseBlobUploadHandler.handle(
ParseBlobUploadHandler.java:119)
 at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.
java:1182)
 at com.google.apphosting.runtime.jetty9.AppEngineWebAppContext.doHandle(
AppEngineWebAppContext.java:183)
 at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512
)
 at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.
java:185)
 at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.
java:1112)
 at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java
:141)
 at com.google.apphosting.runtime.jetty9.AppVersionHandlerMap.handle(
AppVersionHandlerMap.java:293)
 at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.
java:134)
 at org.eclipse.jetty.server.Server.handle(Server.java:539)
 at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:333)
 at com.google.apphosting.runtime.jetty9.RpcConnection.handle(RpcConnection.
java:213)
 at com.google.apphosting.runtime.jetty9.RpcConnector.serviceRequest(
RpcConnector.java:81)
 at com.google.apphosting.runtime.jetty9.JettyServletEngineAdapter.
serviceRequest(JettyServletEngineAdapter.java:123)
 at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
dispatchServletRequest(JavaRuntime.java:692)
 at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.
dispatchRequest(JavaRuntime.java:655)
 at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(
JavaRuntime.java:625)
 at com.google.apphosting.runtime.JavaRuntime$NullSandboxRequestRunnable.run
(JavaRuntime.java:817)
 at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(
ThreadGroupPool.java:269)
 at java.lang.Thread.run(Thread.java:748)

I also save the user agent, which was:
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) 
Chrome/74.0.3729.157 Safari/537.36

I was hoping for a more meaningful stack trace.

I also tried an exception that I raised, and I get the same stack trace:

team.drift.common.model.DriftTeamException: Sorry, your browser does not 
support WebGL.
 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
 at sun.reflect.NativeConstructorAccessorImpl.newInstance(
NativeConstructorAccessorImpl.java:62)
 at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(
DelegatingConstructorAccessorImpl.java:45)
 at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
instantiate(ServerSerializationStreamReader.java:1110)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
deserialize(ServerSerializationStreamReader.java:682)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
readObject(ServerSerializationStreamReader.java:592)
 at com.google.gwt.user.server.rpc.impl.
ServerSerializationStreamReader$ValueReader$8.readValue(
ServerSerializationStreamReader.java:149)
 at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.
deserializeValue(ServerSerializationStreamReader.java:434)
 at com.google.gwt.user.server.rpc.RPC.decodeRequest(RPC.java:312)
 ...

Am I doing something wrong?

Thanks.

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit/19d6190e-5a9b-417d-b524-7227b840b5a7%40googlegroups.com.

Reply via email to