Announcement

Collapse
No announcement yet.
X
  • Filter
  • Time
Clear All
new posts

    Exception on button click in FF26 Dev Mode

    Hi Isomorphic,

    please see this simple testcase. I get an exception in FF 26.0 Dev Mode (only here, not in compiled mode) on button click. I'm using GWT 2.6.1 / v9.1p_2014-07-08.

    Exception (copy&paste from Eclipse Development Mode tab) is:
    Code:
    12:19:24.154 [ERROR] [builtinds] Uncaught exception escaped
    
    com.google.gwt.event.shared.UmbrellaException: Exception caught: null
        at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:129)
        at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:284)
        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:356)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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:293)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
        at java.lang.Thread.run(Unknown Source)
    Caused by: java.lang.NullPointerException: null
        at com.smartgwt.sample.client.BuiltInDS$FilterImgButton$MyClickHandler.onClick(BuiltInDS.java:36)
        at com.smartgwt.client.widgets.events.ClickEvent.dispatch(ClickEvent.java:111)
        at com.smartgwt.client.widgets.events.ClickEvent.dispatch(ClickEvent.java:1)
        at com.google.gwt.event.shared.GwtEvent.dispatch(GwtEvent.java:1)
        at com.google.web.bindery.event.shared.EventBus.dispatchEvent(EventBus.java:40)
        at com.google.web.bindery.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:193)
        at com.google.web.bindery.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:88)
        at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:127)
        at com.google.gwt.user.client.ui.Widget.fireEvent(Widget.java:129)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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.reactToMessagesWhileWaitingForReturn(BrowserChannelServer.java:338)
        at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:219)
        at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:136)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:576)
        at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:284)
        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:356)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        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:293)
        at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:547)
        at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:364)
        at java.lang.Thread.run(Unknown Source)

    BuiltInDS.java:
    Code:
    package com.smartgwt.sample.client;
    
    import com.google.gwt.core.client.EntryPoint;
    import com.smartgwt.client.core.KeyIdentifier;
    import com.smartgwt.client.util.PageKeyHandler;
    import com.smartgwt.client.util.Page;
    import com.smartgwt.client.util.SC;
    import com.smartgwt.client.widgets.Button;
    import com.smartgwt.client.widgets.events.ClickEvent;
    import com.smartgwt.client.widgets.events.ClickHandler;
    
    public class BuiltInDS implements EntryPoint {
    	public void onModuleLoad() {
    		KeyIdentifier debugKey = new KeyIdentifier();
    		debugKey.setCtrlKey(true);
    		debugKey.setKeyName("D");
    
    		Page.registerKey(debugKey, new PageKeyHandler() {
    			public void execute(String keyName) {
    				SC.showConsole();
    			}
    		});
    
    		FilterImgButton myButton = new FilterImgButton();
    		myButton.draw();
    	}
    
    	public class FilterImgButton extends Button {
    		private class MyClickHandler implements ClickHandler {
    			@Override
    			public void onClick(ClickEvent event) {
    
    				if (!getSelected()) {
    					setIcon("[SKINIMG]action/foo.png");
    					setSelected(true);
    				} else {
    					setIcon("[SKINIMG]action/bar.png");
    					setSelected(false);
    				}
    			};
    		}
    
    		{
    			addClickHandler(new MyClickHandler());
    		}
    	}
    }
    Best regards,
    Blama

    #2
    We do see a problem running your sample, but it's present in compiled mode as well. Did you check the Developer Console? We'll follow up when it's resolved.

    Comment


      #3
      The problem is that getSelected() can return null, which the if statement is not able to handle. A better choice would be isSelected() which is guaranteed to never return null.

      We've improved the logic of Boolean/boolean getters that provide access to SmartClient properties so that they should never return null if a default value of true or false is documented.

      This fix will be in the next nightlies for SC 10.0d and 9.1p (or you can use the suggested workaround).

      Comment


        #4
        Hi Isomorphic,

        thanks for fixing. I'll try on Monday.
        You are right about the exception also occurring in compiled mode, I must have missed it somehow:
        Code:
        09:52:44.582:MUP1:WARN:Log:com.google.gwt.core.client.JavaScriptException: (TypeError) 
         __gwt$exception: <skipped>: this$static is null
        Best regards,
        Blama

        Comment


          #5
          Hi Isomorphic,

          FYI: This is not fixed for me with unchanged code using v9.1p_2014-07-13.

          FF26 Developer Console, compiled mode:
          Code:
          14:30:58.475:MUP9:WARN:Log:com.google.gwt.core.client.JavaScriptException: (TypeError) 
           stack: $booleanValue@http://localhost:8080/lms/:3948
          onClick_31@http://localhost:8080/lms/:2340
          $dispatch@http://localhost:8080/lms/:3519
          dispatch_0@http://localhost:8080/lms/:3522
          dispatch@http://localhost:8080/lms/:218
          dispatchEvent_0@http://localhost:8080/lms/:232
          $doFire@http://localhost:8080/lms/:239
          $fireEvent_0@http://localhost:8080/lms/:242
          $fireEvent@http://localhost:8080/lms/:225
          $fireEvent_1@http://localhost:8080/lms/:683
          fireEvent_0@http://localhost:8080/lms/:686
          $setupClickEvent/click_0<@http://localhost:8080/lms/:799
          apply_0@http://localhost:8080/lms/:113
          entry0@http://localhost:8080/lms/:118
          entry_0/<@http://localhost:8080/lms/:117
          $setupClickEvent/obj.click@http://localhost:8080/lms/:799
          isc_StatefulCanvas_handleActivate@http://localhost:8080/lms/lms/sc/modules/ISC_Foundation.js?isc_version=v9.1p_2014-07-13.js:235
          isc_StatefulCanvas_handleClick@http://localhost:8080/lms/lms/sc/modules/ISC_Foundation.js?isc_version=v9.1p_2014-07-13.js:236
          isc_c_EventHandler_bubbleEvent@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:1388
          isc_c_EventHandler_handleClick@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:1261
          isc_c_EventHandler__handleMouseUp@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:1250
          isc_c_EventHandler_handleMouseUp@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:1244
          isc_c_EventHandler_dispatch@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:1461
          anonymous@http://localhost:8080/lms/lms/sc/modules/ISC_Core.js?isc_version=v9.1p_2014-07-13.js:75
          
           __gwt$exception: <skipped>
           fileName: http://localhost:8080/lms/
           lineNumber: 3948
           columnNumber: 36: this$static is null
          Best regards,
          Blama

          Comment


            #6
            This was a significant change, affecting many if not most boolean SGWT getters, so it appears it was not ported back to 9.1p immediately. We'll do that now.

            Comment


              #7
              Hi Isomorphic,

              this is fixed for me now.

              Thanks a lot,
              Blama

              Comment

              Working...
              X