Announcement

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

    Unresponsive script warning error

    I was using smart-client 7.0 in my application. Server side, we have spring and java. Last month, we upgraded smart-client version to 8.1 and then we are facing a intermittent issue mainly in Mozilla firefox.

    "Unresponsive script" ...
    " http://10.91.131.143:5080/smppgui/isomorphic/system/modules/ISC_Core.js?isc_version=7.0rc2.js:2126"

    For details, please refer attached image.

    Please can you tell me, how we can resolve it.

    Thanks in advance.

    Vikram
    Attached Files

    #2
    I see this with:
    Firefox 10.0.4
    SmartGWT 3.0_05092012p
    Linux 5.7

    It only happens for new users. Deleting the users .mozilla folder reproduces the problem.

    Sometimes clicking ignore warning will still bring up the page, other times, it hangs on our loading screen.

    Comment


      #3
      If deleting the .Mozilla folder permanently resolves the problem, this suggests a caching issue, where some resources from the older version of the app are being loaded alongside newer resources. This might result in logic bugs that could go into infinite loops.

      There are lots of ways to address this but the sure fire way is to put all resources from the new app at URLs that differ from the old.

      Comment


        #4
        Deleting the .mozilla folder doesn't resolve it, it reproduces it.

        It appears that it needs to re-download the application but its too big.

        The warning is fine, its just that sometimes it appears to hang, and the application is not loaded. Reloading a 2nd time usually fixes it.

        Comment


          #5
          ".mozilla" has lots of things. Can you reproduce the problem after just clearing the cache? If so, but it goes away after a refresh, this suggests a timing issue in your code - something in your code assumes some cachable resource is already present, and goes into an infinite loop if it is not.

          Comment


            #6
            Just clearing the cache does not reproduce the problem.

            Its only after deleting the .mozilla folder.

            Just tried it now and it actually worked. So it appears to hang only sometimes.

            Comment


              #7
              Here is a StackTrace of when it hangs:

              (class com.google.gwt.event.shared.UmbrellaException)One or more exceptions caught, see full set in UmbrellaException#getCauses
              caused by class com.google.gwt.core.client.JavaScriptException
              null#Unknown.java_lang_RuntimeException_RuntimeException__Ljava_lang_String_2Ljava_lang_Throwable_2V(-1 )
              null#Unknown.com_google_web_bindery_event_shared_UmbrellaException_UmbrellaException__Ljava_util_Set_2V(-1 )
              null#Unknown.com_google_gwt_event_shared_UmbrellaException_UmbrellaException__Ljava_util_Set_2V(-1 )
              null#Unknown.com_google_gwt_event_shared_HandlerManager_$fireEvent__Lcom_google_gwt_event_shared_HandlerManager_2Lcom_google_gwt_event_shared_GwtEvent_2V(-1 )
              null#Unknown.com_smartgwt_client_widgets_BaseWidget_$fireEvent__Lcom_smartgwt_client_widgets_BaseWidget_2Lcom_google_gwt_event_shared_GwtEvent_2V(-1 )
              null#Unknown.com_smartgwt_client_widgets_BaseWidget_rendered__V(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_c_Class_invokeSuper(-1 )
              null#Unknown.isc_ListGrid_draw(-1 )
              null#Unknown.isc_c_Class_invokeSuper(-1 )
              null#Unknown.isc_TreeGrid_draw(-1 )
              null#Unknown.isc_Layout_layoutChildren(-1 )
              null#Unknown.isc_Layout_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_Layout_layoutChildren(-1 )
              null#Unknown.isc_Layout_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_Canvas_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_c_Class_invokeSuper(-1 )
              null#Unknown.isc_TabSet_draw(-1 )
              null#Unknown.isc_Layout_layoutChildren(-1 )
              null#Unknown.isc_Layout_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_Layout_layoutChildren(-1 )
              null#Unknown.isc_Layout_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.isc_Layout__drawNonMemberChildren(-1 )
              null#Unknown.isc_Layout_drawChildren(-1 )
              null#Unknown.isc_Canvas_draw(-1 )
              null#Unknown.com_smartgwt_client_widgets_BaseWidget_$draw__Lcom_smartgwt_client_widgets_BaseWidget_2V(-1 )
              null#Unknown.xyz_ui_webgui_client_presenter_SystemPresenter_$go__Lxyz_ui_webgui_client_presenter_SystemPresenter_2V(-1 )
              null#Unknown.xyz_ui_webgui_client_Xyz$5_execute__Lcom_smartgwt_client_rpc_RPCResponse_2Ljava_lang_Object_2Lcom_smartgwt_client_rpc_RPCRequest_2V(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.com_google_gwt_core_client_impl_Impl_apply__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(-1 )
              null#Unknown.com_google_gwt_core_client_impl_Impl_entry0__Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2Ljava_lang_Object_2(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.isc_c_Class_fireCallback(-1 )
              null#Unknown.isc_Class_fireCallback(-1 )
              null#Unknown.isc_c_RPCManager_fireReplyCallback(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.isc_c_RPCManager_fireReplyCallbacks(-1 )
              null#Unknown.isc_c_RPCManager_performOperationReply(-1 )
              null#Unknown.isc_c_RPCManager__performTransactionReply(-1 )
              null#Unknown.isc_c_RPCManager_performTransactionReply(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.isc_c_Class_fireCallback(-1 )
              null#Unknown.isc_c_Comm_performXmlTransactionReply(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.isc_c_Class_fireCallback(-1 )
              null#Unknown.isc_c_Comm__fireXMLCallback(-1 )
              null#Unknown.anonymous(-1 )
              null#Unknown.anonymous(-1 )

              Comment


                #8
                This stack is from hosted mode, and a "script running slowly" error in hosted mode doesn't indicate a problem that will necessarily happen in a compiled application.

                Even assuming it does - all we can tell you about that stack is that it looks like a deeply nested set of components - it's possible that breaking up the rendering will avoid the problem while simultaneously improving the UI.

                But again this may not be the problem at all, and it could just be an ordinary timing bug in your code, causing it to go into an infinite loop.

                Let us know if you think you have definitive evidence this a problem in the framework.

                Comment


                  #9
                  Can you tell me where I can learn more about:

                  "it's possible that breaking up the rendering will avoid the problem while simultaneously improving the UI"

                  Comment


                    #10
                    Basically, it means don't create and draw() all the components on a very large screen at once. Instead, create and draw just some - perhaps the outermost layouts like a TabSet, Menus, etc - then set a 0 millisecond timer via GWT's DeferredCommand, then draw the rest.

                    From a user experience perspective this means the outer components will appear and a moment later the remaining ones will, which could break up a long delay if you have a screen with lots and lots of widgets that takes a while to render.

                    However unless the screen takes several seconds to render **in compiled mode** this is probably not the issue anyway, so we wouldn't recommend pursuing - try to isolate how you might get into an infinite loop instead.

                    Comment

                    Working...
                    X