Announcement

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

    Bug in Closeable Tabs (Current Snapshots) / Debugging Smart Client

    There seems to be a bug in the implementation of closeable tabs in current snapshots of Smart Client. To reproduce, try the following:

    * Run start_embedded_server.sh
    * Browse to http://localhost:8080/isomorphic/system/reference/SmartClient_Explorer.html#closeableTabs
    * Click on the "Green" tab
    * Click on the "Remove Tab" button

    The "Green" tab disappears, but so does the image in the "Blue" tab. Firebug displays the following error message:

    _3 is undefined
    http://localhost:8080/isomorphic/system/modules/ISC_Containers.js?isc_version=SC_SNAPSHOT-2010-05-29.js
    Line 365

    The Smart Client Developer Console displays the message

    23:56:31.589:MUP9:WARN:Log:TypeError: Cannot read property 'tabDeselected' of undefined

    The error happens with Firefox 3.6.3 and with Chrome 5.0.375.55 on Fedora 13, and with both the evaluation and the LGPL versions of Smart Client. It does not happen with 7.0rc2. The same error also happens in other applications; it is triggered if (and only if) the rightmost tab in a TabSet is closed. In that case all other tabs in the TabSet stay blank until a new tab is created.

    What is the preferred way to debug these kinds of errors in Smart Client? Figuring out which source file corresponds to the compressed code that triggered the error (by grepping the source tree, etc.) seems, well, not particularly efficient. I'm tempted to write a script that loads the non-compressed source code from the smartclientSDK/source folder during development and the compressed files for deployment and testing. But before spending time on a possibly mistaken (or even impossible) approach I'd be interested how the experts here do it, and whether there is any ready-made solution available.

    #2
    What is the preferred way to debug these kinds of errors in Smart Client? Figuring out which source file corresponds to the compressed code that triggered the error (by grepping the source tree, etc.) seems, well, not particularly efficient. I'm tempted to write a script that loads the non-compressed source code from the smartclientSDK/source folder during development and the compressed files for deployment and testing. But before spending time on a possibly mistaken (or even impossible) approach I'd be interested how the experts here do it, and whether there is any ready-made solution available.
    While browsing through the sources I found the solution myself. It's really easy to work with the uncompressed source code, so for anybody who is interested: just copy the smartclientSDK/source/client/ to the folder where you have your skins/ and system/ folders, change your includes from system/modules/*.js to client/modules/*.js, and you're all set.

    Comment


      #3
      Thanks for the heads-up. We've fixed the issue (fix should surface in the next nightly build).

      In terms of debugging - we have a doc topic discussing debugging (and bug reporting) in SmartClient here.

      This doesn't discuss running from uncompressed source. This is not usually a requirement since stack-traces are automatically logged on error to the developer console in IE, or via firebug in firefox, and this will typically provide enough information to track down application level errors.
      However, as you've noted, yes you can run from the uncompressed source directly for debugging purposes.

      Comment


        #4
        the fix is available? where I can get?

        Comment


          #5
          Hi,

          Isomorphic, i just finished download the last nightly build from
          http://www.smartclient.com/smartgwt/builds/latest/ - 04-Jun-2010 and the problem still remains.

          Any tips?

          Comment


            #6
            Pick the lates build from here http://www.smartclient.com/builds/smartgwt/

            Comment


              #7
              ty for the answer.

              I got this version now:

              http://www.smartclient.com/builds/sm...7/smartgwt.jar
              http://www.smartclient.com/builds/sm...tgwt-skins.jar

              and I still have this problem:
              Tab tab = // get the tab to remove
              if(tab != null) {
              tabSet.removeTab(tab);
              }


              ''tabDeselected' is null or not an object' in http://127.0.0.1:8888/sonnerapp/sc/m..._Containers.js at line 365
              TabSet.$8c(_1=>[ImgTab ID:isc_Tab_3]) [o]TabBar.buttonSelected(_8=>[ImgTab ID:isc_Tab_3]) [o]ImgButton.setSelected(true) StatefulCanvas.select() Toolbar.selectButton(_1=>1) TabBar.selectTab(_1=>1) TabSet.selectTab(_1=>1) TabSet.removeTabs(_1=>Array[1], _2=>undef) TabSet.removeTab(_1=>Obj{ID:isc_Tab_4}, _2=>undef)
              "return this.removeTabs(_1,_2)"

              did I miss something?
              Last edited by sonnerdev; 7 Jun 2010, 06:19.

              Comment


                #8
                tried latest build ... 08-Jun-2010 14:08


                still get the same problem...

                how? help please..

                Comment


                  #9
                  yeah , same here :(

                  Comment


                    #10
                    tried 2010-06-09/ .. seems working now!

                    Thanks~

                    Comment


                      #11
                      Looks like its working now.


                      Im not sure why, but only on IE i was getting:
                      Stack overFlow at line: 0

                      so, I add this code

                      tab.getPane().destroy();

                      before call

                      tabSet.removeTab(tab);

                      and now is working;

                      bug?

                      Comment

                      Working...
                      X