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.
