ICEfaces
  1. ICEfaces
  2. ICE-10974

showcase - Mobi component errors w/ coalesce-resources=true

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.1
    • Fix Version/s: EE-4.1.0.RC1, EE-4.1.0.GA, 4.2.BETA, 4.2
    • Component/s: Bridge, Sample Apps
    • Labels:
      None
    • Environment:
      ICEfaces 4.1.1 Jenkins Build# 6 / ICEfaces4 trunk Jenkins Build# 1829
      Browsers: all
      Server: Tomcat 7.0.42
    • Assignee Priority:
      P1

      Description

      showcase-mobile > all Mobile components demos:
      The demo pages are blank, and JS errors can be seen in browser console when navigating to any Mobi component demo, after seeing the progressBar > Push demo.
      Refreshing the page restores the Mobi demo, however the browser console error occurs again when navigating to another Mobi demo.

      Error: jsf.ajax.request: source not set
      http://localhost:8080/showcase/javax.faces.resource/jsf.js.jsf?ln=javax.faces&v=4_2_0_160223
      Line 1


      This issue can also be reproduced with Mojarra 2.2.12, but not with MyFaces JSF.

      Using Jenkins ICEfaces 4.1.1 Build #6, the error can be reproduced immediately on Tomcat 7.0.42. After modifying the web.xml to disable resource coalescing, the error went away. After re-enabling resource coalescing, the error could be reproduced again on Firefox41, but only after cleaning and restarting the server twice. On Chrome the error could not be reproduced again after re-enabling resource coalescing. The appearance of this error seems to be random.

        Activity

        Hide
        Ken Fyten added a comment -

        Note that I've now reproduced this issue using ICEfaces 4.1.0 release libs.

        If you deploy the showcase to tomcat (with coalesce-resources = true, which is the default on the IF 4 trunk now), it seems to happen regularly.

        1. Load the showcase in Chrome (clear the cookies and cache first)
        2. Navigate to the Misc->ProgressBar->Push Demo (no need to actually run the demo)
        3. Navigate to the Mobile Showcase tab.
        4. Select the mobi:dataView demo - see that nothing loads where the demo should be.

        If you don't see it right away, close the browser tab, clear the cache again, and load the sample again.

        Show
        Ken Fyten added a comment - Note that I've now reproduced this issue using ICEfaces 4.1.0 release libs. If you deploy the showcase to tomcat (with coalesce-resources = true, which is the default on the IF 4 trunk now), it seems to happen regularly. Load the showcase in Chrome (clear the cookies and cache first) Navigate to the Misc->ProgressBar->Push Demo (no need to actually run the demo) Navigate to the Mobile Showcase tab. Select the mobi:dataView demo - see that nothing loads where the demo should be. If you don't see it right away, close the browser tab, clear the cache again, and load the sample again.
        Hide
        Mircea Toma added a comment - - edited

        The errors were caused by a double evaluation of the coalesced JS resource. When navigating to the mobile page the page will load its coalesced resources and then a post-back would be issued to check for new updates that might have been queued. During this post-back a different set of resources are collected, with a duplicate component.js resource in the list, which will trigger another load of the coalesced JS resource. This in turn will trigger another JS evaluation on the client side that will erase some of the page variables setup during the page load.

        The applied fix ensures that component resources are not added more that once to the corresponding resource container.

        Show
        Mircea Toma added a comment - - edited The errors were caused by a double evaluation of the coalesced JS resource. When navigating to the mobile page the page will load its coalesced resources and then a post-back would be issued to check for new updates that might have been queued. During this post-back a different set of resources are collected, with a duplicate component.js resource in the list, which will trigger another load of the coalesced JS resource. This in turn will trigger another JS evaluation on the client side that will erase some of the page variables setup during the page load. The applied fix ensures that component resources are not added more that once to the corresponding resource container.
        Hide
        Carmen Cristurean added a comment -

        Verified ICEfaces4 trunk r.48461 on FF41, Chrome48, IE11.

        Show
        Carmen Cristurean added a comment - Verified ICEfaces4 trunk r.48461 on FF41, Chrome48, IE11.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Carmen Cristurean
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: