Bug 1015314

Summary: Navigating to Administration -- > Topology --> Servers has Globally Uncaught Exception
Product: [Other] RHQ Project Reporter: Mike Thompson <mithomps>
Component: Core UIAssignee: RHQ Project Maintainer <rhq-maint>
Status: CLOSED NOTABUG QA Contact: Mike Foley <mfoley>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.10CC: hrupp, jkremser
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-10-03 23:08:49 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Mike Thompson 2013-10-03 22:04:26 UTC
Description of problem:
Navigating to Administration -- > Topology --> Servers results in Globally Uncaught Exception

Version-Release number of selected component (if applicable):
RHQ 4.10 (master: 6784f2a)


How reproducible:
Always


Steps to Reproduce:
1. Goto Administration -- > Topology --> Servers
2. Observe Error


Actual results:
No Servers and the loading gif is left spinning

Error with Globally Uncaught Exception

Error Message:
com.google.gwt.core.client.JavaScriptException:(null): null
--- STACK TRACE FOLLOWS ---
(null): null
   at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:248)
   at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
   at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:561)
   at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:269)
   at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
   at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
   at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:213)
   at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:606)
   at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
   at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
   at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:172)
   at com.google.gwt.dev.shell.BrowserChannelServer.reactToMessages(BrowserChannelServer.java:292)
   at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:546)
   at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:363)
   at java.lang.Thread.run(Thread.java:724

Expected results:
No Errors

Comment 1 Jirka Kremser 2013-10-03 22:15:37 UTC
afaik, it happens only in the GWT debug mode not in production

Comment 2 Mike Thompson 2013-10-03 23:08:49 UTC
Looks like you are correct Jirka GWT Debug mode only. Production is fine.

I'll close it then.

Comment 3 Jirka Kremser 2013-10-04 11:52:16 UTC
These issues are annoying, the same problem was happening on the storage node detail page. Bad thing about it is, it doesn't report the line where the problem happened. 

On the StorageNodeDetailView, however, I was able to find out (by bisecting (commenting out half of the code and running it again.. and again ..)) that the the problematic line was, surprisingly:

https://git.fedorahosted.org/cgit/rhq/rhq.git/tree/modules/enterprise/gui/coregui/src/main/java/org/rhq/enterprise/gui/coregui/client/admin/storage/StorageNodeDetailView.java#n395

So I've added the CoreGUI.isDebugMode() if there.

What is even more weird is that this (the JavaScriptException:(null): thing) doesn't happen in Chromium.

Comment 4 Mike Thompson 2013-10-04 18:02:27 UTC
I'm not sure that CoreGUI.isDebugMode() is necessary or accurate. We don't have a way to tell if we are in running under the GWT debugger (as far as I know anyway). All that we know is that we are running under GWT Dev mode or Production Mode. And that already exists as GWT.isProdMode().

Comment 5 Jirka Kremser 2013-10-07 16:02:56 UTC
It should be fine, I've seen it used in the coregui somewhere else. CoreGUI.isDebugMode() calls !GWT.isScript()

http://stackoverflow.com/questions/223373/is-there-way-for-a-gwt-program-to-tell-if-its-in-hosted-or-web-mode