ICEfaces
  1. ICEfaces
  2. ICE-11212

Preliminary Support for Mojarra JSF 2.3

    Details

    • Type: New Feature New Feature
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 4.2
    • Labels:
      None
    • Environment:
      ICEfaces4 trunk r. 50008/ Jenkins Build # 2312
      Mojarra 2.3 JSF (javax.faces-2.3.0-m09)
      Server: Tomcat7.0.42
      Browsers: Firefox50, MsEdge38, Chrome55
    • Assignee Priority:
      P2
    • Affects:
      Compatibility/Configuration

      Description

      The following issues have been found after testing sample apps from IF4 trunk with Mojarra 2.3 (javax.faces-2.3.0-m09) JSF; any of these issues cannot be reproduced with the default Mojarra 2.2.14.

      1) auction - is not functional; bids cannot be placed, item details can be viewed only if clicking twice on the arrow icons.
      A JS error occurs when trying to place bids (MsEdge):
      SCRIPT5022: jsf.ajax.request: Form has no view state element
      jsf.js.jsf (1,34846)

      2) emporium - the application cannot be loaded in a browser because of an HTTP Status 500.
      The page renders this error:

      HTTP Status 500 - javax/enterprise/context/spi/Contextual
      type Exception report
      message javax/enterprise/context/spi/Contextual
      description The server encountered an internal error that prevented it from fulfilling this request.
      exception
      javax.servlet.ServletException: javax/enterprise/context/spi/Contextual
          javax.faces.webapp.FacesServlet.service(FacesServlet.java:681)
          org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
          org.icesoft.util.servlet.RequestLoggerFilter.doFilter(RequestLoggerFilter.java:74)
          org.icesoft.util.servlet.CustomHeaderFilter.doFilter(CustomHeaderFilter.java:82)

      root cause
      java.lang.NoClassDefFoundError: javax/enterprise/context/spi/Contextual
          java.lang.Class.forName0(Native Method)
          java.lang.Class.forName(Class.java:340)
          com.sun.faces.util.Util.loadClass(Util.java:303)
          com.sun.faces.application.ApplicationImpl.newThing(ApplicationImpl.java:1811)
          com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1983)
          com.sun.faces.application.ApplicationImpl.createComponent(ApplicationImpl.java:1210)
          com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.createComponent(ComponentTagHandlerDelegateImpl.java:588)
          com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:176)
          javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMetaTagHandler.java:135)
          javax.faces.view.facelets.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:96)
          org.icefaces.mobi.component.largeview.LargeViewHandler.applyNextHandler(LargeViewHandler.java:44)
          com.sun.faces.facelets.tag.jsf.ComponentTagHandlerDelegateImpl.apply(ComponentTagHandlerDelegateImpl.java:203)
      ...........


      3) chat
      a) The application is functional, however, an NCI popup renders after staying on the page for a few seconds (there is no need to log in to see this NCI popup). There are no server errors, or browser console errors.

      b) A server warning occurs when logging out of chat:
      Jan 12, 2017 1:58:51 PM org.icepush.LocalPushGroupManager$QueueConsumerTask takeAndExecute
      WARNING: Notification queue encountered
      java.lang.IllegalArgumentException: Illegal argument notificationEntrySet: '[]'. Argument cannot be null or empty.
              at org.icesoft.util.PreCondition.checkIfIsNotNullAndIsNotEmpty(PreCondition.java:367)
              at org.icepush.NotificationEvent.<init>(NotificationEvent.java:38)
              at org.icepush.Notification.run(Notification.java:174)
              at org.icepush.LocalPushGroupManager$QueueConsumerTask.takeAndExecute(LocalPushGroupManager.java:1828)
              at org.icepush.LocalPushGroupManager$QueueConsumerTask.run(LocalPushGroupManager.java:1758)
              at java.util.TimerThread.mainLoop(Timer.java:555)
              at java.util.TimerThread.run(Timer.java:505)
      ............


      4) showcase
      a) Styling issue: the left-side navigation menu links start rendering in blue as in attached screen shot (Capture.PNG), after clicking a link to access the first component.

      b) A number of component demos cannot be accessed because of the same "javax.enterprise.context.spi.Contextual" error. As example:
      ace:accordion > Overview
      ace:breadcrumbMenu > Overview
      ace:dataTable > all demos
      tooltip > Delegate,
      tree > all demos
      On these demos, a "javax.enterprise.context.spi.Contextual/java.lang.NoClassDefFoundError" server error popup occurs on page load, and if reloading the page, the error is rendered on the page; the server log has the same error as the one mentioned at issue 2).


      c) icecore:defaultAction; ace:chart > Export:
      A JS error occurs when trying to access ace:chart > Export demo, or when pressing keys on the icecore:defaultAction demo.
      Error: jsf.ajax.request: Form has no view state element
      http://localhost:8080/showcase/javax.faces.resource/jsf.js.jsf?ln=javax.faces&stage=Development&v=4_2_0_170112
      Line 2470


      5) scopes > Application Scope:
      The browser console error mentioned at issue 4.c) was reproduced also with scopes > Application Scope demo on IE11/Windows7, and randomly on IE11/Windows10, by clicking fast on the '+' or '-' counter buttons:
      SCRIPT5022: jsf.ajax.request: Form has no view state element
      File: jsf.js.jsf, Line: 2470, Column: 21


      6) fajax:
      Test fails, the counter fails to increase to '2' when clicking 'Toggle Test 3' button; instead, it changes to '0'.
      No browser console, or server errors.

        Activity

        Repository Revision Date User Message
        ICEsoft Public SVN Repository #50176 Thu Jan 19 13:03:54 MST 2017 mircea.toma ICE-11212 Changed method EnvUtils.isJSF22 to EnvUtils.isJSF22OrGreater and also modified its implementation to return true for JSF version greater or equal to 2.2. Used new method to decide the update format for javax.faces.ViewState.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/core/src/main/java/org/icefaces/impl/context/DOMPartialViewContext.java
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #50175 Thu Jan 19 12:50:43 MST 2017 mircea.toma ICE-11212 Changed method EnvUtils.isJSF22 to EnvUtils.isJSF22OrGreater and also modified its implementation to return true for JSF version greater or equal to 2.2. Use new method to decide the update format for javax.faces.ViewState.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/core/src/main/java/org/icefaces/util/EnvUtils.java

          People

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

            Dates

            • Created:
              Updated:
              Resolved: