ICEfaces
  1. ICEfaces
  2. ICE-10339

icecore tag issues using Myfaces 2.2.5 libs.

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 4.0, EE-3.3.0.GA_P06
    • Component/s: Sample Apps
    • Labels:
      None
    • Environment:
      ICEfaces 4 trunk r43075. Tomcat 7, all browsers, Myfaces 2.2.5.
    • Assignee Priority:
      P1

      Description

      There are 3 issue that affect the icecore showcase demos when using Myfaces 2.2.5 libs. (All browsers)

      1.) icecore demos general issue
      popup error seen while clicking on links to launch demos, and when using DefaultAction demo:
      May take a few times clicking to produce the resulting error.
      java.lang.IllegalAccessException: Class javax.faces.component.UIComponentBase can not access a member of class org.icefaces.impl.component.DefaultAction$KeyMap with modifiers "private"
      java.lang.RuntimeException

      2.) icecore:refresh > Overview
      Clock ticks once after loading the page or changing Interval or Duration selections. Afterward it stops ticking entirely.

      3.) icecore:loadBundle
      NPE when navigating to demo:
      Oct 21, 2014 11:38:14 AM org.icepush.servlet.EnvironmentAdaptingServlet service
      INFO: Falling back to Thread Blocking environment
      java.lang.NullPointerException
              at org.apache.myfaces.util.AbstractAttributeMap.remove(AbstractAttributeMap.java:137)
              at org.icefaces.impl.component.LoadBundle.updateBundle(LoadBundle.java:73)
              at org.icefaces.impl.component.LoadBundle.encodeBegin(LoadBundle.java:57)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:526)
              at org.apache.myfaces.shared.renderkit.RendererUtils.renderChildren(RendererUtils.java:688)
              at org.apache.myfaces.shared.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:141)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
              at org.icefaces.ace.renderkit.CoreRenderer.renderChild(CoreRenderer.java:87)
              at org.icefaces.ace.renderkit.CoreRenderer.renderChildren(CoreRenderer.java:71)
              at org.icefaces.ace.component.panel.PanelRenderer.encodeContent(PanelRenderer.java:238)
              at org.icefaces.ace.component.panel.PanelRenderer.encodeMarkup(PanelRenderer.java:135)
              at org.icefaces.ace.component.panel.PanelRenderer.encodeEnd(PanelRenderer.java:73)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:554)
              at org.apache.myfaces.shared.renderkit.RendererUtils.renderChildren(RendererUtils.java:688)
              at org.apache.myfaces.shared.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:141)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:554)
              at org.apache.myfaces.shared.renderkit.RendererUtils.renderChildren(RendererUtils.java:688)
              at org.apache.myfaces.shared.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:141)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:554)
              at org.apache.myfaces.shared.renderkit.RendererUtils.renderChildren(RendererUtils.java:688)
              at org.apache.myfaces.shared.renderkit.html.HtmlGroupRendererBase.encodeEnd(HtmlGroupRendererBase.java:141)
              at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:674)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:554)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:550)
              at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:164)
              at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:516)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:541)
              at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.renderView(FaceletViewDeclarationLanguage.java:1891)
              at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandlerImpl.java:313)
              at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:58)
              at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:116)
              at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:267)
              at javax.faces.webapp.FacesServlet.service(FacesServlet.java:200)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
              at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
              at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023)
              at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
              at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1852)
              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
              at java.lang.Thread.run(Thread.java:745)


        Activity

        Hide
        Mircea Toma added a comment - - edited

        1) Made DefaultAction.KeyMap inner class public and serializable to allow its restoring by JSF.

        2) Always dynamically add RefreshOutputSetup component to the tree when running with Myfaces (seems that FacesContext instances are re-used between lifecycles) .

        3) Changed LoadBundle to remove entries in request map only when the key is different than null.

        Show
        Mircea Toma added a comment - - edited 1) Made DefaultAction.KeyMap inner class public and serializable to allow its restoring by JSF. 2) Always dynamically add RefreshOutputSetup component to the tree when running with Myfaces (seems that FacesContext instances are re-used between lifecycles) . 3) Changed LoadBundle to remove entries in request map only when the key is different than null.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk r43088 Myfaces JSF. Tomcat 7, IE 11, FF 33, Chrome 38.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk r43088 Myfaces JSF. Tomcat 7, IE 11, FF 33, Chrome 38.
        Hide
        Liana Munroe added a comment -

        Reopening for Myfaces specific issue with icecore:defaultAction.
        The 2nd action that is performed when using this demo takes the user back to the showcase > Overview page.
        To reproduce:
        Build showcase with -Dmyfaces=true
        Naviage to icecore > DefaultAction demo.
        Insert the cursor into the 1st input field.
        Press Enter.
        Output will state "Default action triggered on Enter key press."
        Using the same input field press Esc or Left Arrow.
        Page is directed back to showcase overview.
        This issue occurs no matter which input field you start with.

        Show
        Liana Munroe added a comment - Reopening for Myfaces specific issue with icecore:defaultAction. The 2nd action that is performed when using this demo takes the user back to the showcase > Overview page. To reproduce: Build showcase with -Dmyfaces=true Naviage to icecore > DefaultAction demo. Insert the cursor into the 1st input field. Press Enter. Output will state "Default action triggered on Enter key press." Using the same input field press Esc or Left Arrow. Page is directed back to showcase overview. This issue occurs no matter which input field you start with.
        Hide
        Mircea Toma added a comment -

        Modified ice.captureKeypress function that icecore:defaultAction relies on to submit the captured key with execute="@this" AJAX attribute. This avoids running the navigation components and thus trigger a navigation.

        Show
        Mircea Toma added a comment - Modified ice.captureKeypress function that icecore:defaultAction relies on to submit the captured key with execute="@this" AJAX attribute. This avoids running the navigation components and thus trigger a navigation.
        Hide
        Liana Munroe added a comment -

        Verified fixed ICEfaces 4 trunk r43102 with FF 33 and Chrome 38. Issue is still partly unresolved when using IE 10 or 11.
        To reproduce:
        Using IE 11 or 10 and a cleared browser cache, place the cursor in the first field and hit Enter. Manually place the cursor in the second input field and press Enter. The page will redirect to showcase >Overview. This issue only occurs the first time through and with a clear browser cache.

        Show
        Liana Munroe added a comment - Verified fixed ICEfaces 4 trunk r43102 with FF 33 and Chrome 38. Issue is still partly unresolved when using IE 10 or 11. To reproduce: Using IE 11 or 10 and a cleared browser cache, place the cursor in the first field and hit Enter. Manually place the cursor in the second input field and press Enter. The page will redirect to showcase >Overview. This issue only occurs the first time through and with a clear browser cache.
        Hide
        Mircea Toma added a comment -

        Cancel event's bubbling once it was captured by icecore:defaultAction component from reaching the form.

        Show
        Mircea Toma added a comment - Cancel event's bubbling once it was captured by icecore:defaultAction component from reaching the form.
        Hide
        Liana Munroe added a comment - - edited

        Tested with ICEfaces 4 trunk r43118.
        icecore:defaultAction issue with IE10 and 11 is still present.
        To reproduce:
        Build showcase with -Dmyfaces=true
        Using IE 11 or 10 and a cleared browser cache, place the cursor in the first field and hit Enter. Manually place the cursor in the second input field and press Enter. The page will redirect to showcase >Overview. This issue only occurs the first time through and with a clear browser cache.

        Show
        Liana Munroe added a comment - - edited Tested with ICEfaces 4 trunk r43118. icecore:defaultAction issue with IE10 and 11 is still present. To reproduce: Build showcase with -Dmyfaces=true Using IE 11 or 10 and a cleared browser cache, place the cursor in the first field and hit Enter. Manually place the cursor in the second input field and press Enter. The page will redirect to showcase >Overview. This issue only occurs the first time through and with a clear browser cache.
        Hide
        Mircea Toma added a comment -

        Please make sure to ant clean before building the showcase.war file. I tried once again to reproduce the problem, but no navigation is triggered after hitting Enter in the second entry.

        Show
        Mircea Toma added a comment - Please make sure to ant clean before building the showcase.war file. I tried once again to reproduce the problem, but no navigation is triggered after hitting Enter in the second entry.
        Hide
        Liana Munroe added a comment -

        This test was performed with ant clean servlet-profile -Dmyfaces=true.
        I retested using r43122, retracing the steps exactly as written and had the same results.
        You can not reproduce this issue if you tab out of the 1st field. You must manually insert the cursor into the first and second field. Also this will only happen on a clear browser cache. I am able to produce this issue on our IE 10 test machine as well.

        Show
        Liana Munroe added a comment - This test was performed with ant clean servlet-profile -Dmyfaces=true. I retested using r43122, retracing the steps exactly as written and had the same results. You can not reproduce this issue if you tab out of the 1st field. You must manually insert the cursor into the first and second field. Also this will only happen on a clear browser cache. I am able to produce this issue on our IE 10 test machine as well.
        Hide
        Mircea Toma added a comment - - edited

        Modified 'submit' function to run with execute='@form' partial submit attribute.

        Also modified default-action.xhtml page in showcase to have a input[type='button'] instead of a input[type='submit'] to avoid a double submit when Enter key is pressed (cancelling the event bubbling and disabling default action of the form does not change the form submit behaviour in IE).

        Show
        Mircea Toma added a comment - - edited Modified 'submit' function to run with execute='@form' partial submit attribute. Also modified default-action.xhtml page in showcase to have a input [type='button'] instead of a input [type='submit'] to avoid a double submit when Enter key is pressed (cancelling the event bubbling and disabling default action of the form does not change the form submit behaviour in IE).
        Hide
        Carmen Cristurean added a comment - - edited

        Verified with r. 43281 in Chrome38, IE10 (MyFaces && Mojarra JSF), none of the issues could be reproduced.

        Note: server -side warnings occur when accessing the icecore:navigationNotifier and icecore:push demos (MyFaces JSF specific):

        Oct 29, 2014 5:20:11 PM org.apache.myfaces.shared.context.flash.FlashImpl _manageFlashMapTokens
        WARNING: Identifier for execute FlashMap was lost on the postback, thus FlashScope information is gone.
        Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer
        WARNING: Unsupported component-family/renderer-type: org.icefaces.impl.component.NavigationNotifier/javax.faces.Button
        Oct 29, 2014 5:20:52 PM javax.faces.component.UIComponentBase getRenderer
        WARNING: No Renderer found for component

        {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: j_id_b][Class: javax.faces.component.html.HtmlPanelGroup,Id: container][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2p][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2s_7][Class: javax.faces.component.html.HtmlForm,Id: j_id_2s_9][Class: org.icefaces.impl.component.NavigationNotifier,Id: __2s_a]}

        (component-family=org.icefaces.impl.component.NavigationNotifier, renderer-type=javax.faces.Button)
        Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer
        WARNING: Unsupported component-family/renderer-type: org.icefaces.impl.component.NavigationNotifier/javax.faces.Button
        Oct 29, 2014 5:20:52 PM javax.faces.component.UIComponentBase getRenderer
        WARNING: No Renderer found for component

        {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: j_id_b][Class: javax.faces.component.html.HtmlPanelGroup,Id: container][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2p][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2s_7][Class: javax.faces.component.html.HtmlForm,Id: j_id_2s_9][Class: org.icefaces.impl.component.NavigationNotifier,Id: __2s_a]}

        (component-family=org.icefaces.impl.component.NavigationNotifier, renderer-type=javax.faces.Button)
        Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer

        Show
        Carmen Cristurean added a comment - - edited Verified with r. 43281 in Chrome38, IE10 (MyFaces && Mojarra JSF), none of the issues could be reproduced. Note: server -side warnings occur when accessing the icecore:navigationNotifier and icecore:push demos (MyFaces JSF specific): Oct 29, 2014 5:20:11 PM org.apache.myfaces.shared.context.flash.FlashImpl _manageFlashMapTokens WARNING: Identifier for execute FlashMap was lost on the postback, thus FlashScope information is gone. Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer WARNING: Unsupported component-family/renderer-type: org.icefaces.impl.component.NavigationNotifier/javax.faces.Button Oct 29, 2014 5:20:52 PM javax.faces.component.UIComponentBase getRenderer WARNING: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: j_id_b][Class: javax.faces.component.html.HtmlPanelGroup,Id: container][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2p][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2s_7][Class: javax.faces.component.html.HtmlForm,Id: j_id_2s_9][Class: org.icefaces.impl.component.NavigationNotifier,Id: __2s_a]} (component-family=org.icefaces.impl.component.NavigationNotifier, renderer-type=javax.faces.Button) Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer WARNING: Unsupported component-family/renderer-type: org.icefaces.impl.component.NavigationNotifier/javax.faces.Button Oct 29, 2014 5:20:52 PM javax.faces.component.UIComponentBase getRenderer WARNING: No Renderer found for component {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /showcase.xhtml][Class: javax.faces.component.html.HtmlBody,Id: j_id_b][Class: javax.faces.component.html.HtmlPanelGroup,Id: container][Class: javax.faces.component.html.HtmlPanelGroup,Id: __p][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2p][Class: org.icefaces.ace.component.panel.Panel,Id: examplePanel][Class: javax.faces.component.html.HtmlPanelGroup,Id: __2s_7][Class: javax.faces.component.html.HtmlForm,Id: j_id_2s_9][Class: org.icefaces.impl.component.NavigationNotifier,Id: __2s_a]} (component-family=org.icefaces.impl.component.NavigationNotifier, renderer-type=javax.faces.Button) Oct 29, 2014 5:20:52 PM org.apache.myfaces.renderkit.html.HtmlRenderKitImpl getRenderer
        Hide
        Mircea Toma added a comment - - edited

        Override UIComponent.getRendererType method in NavigationNotifier to always return null so that the render kit will not try to lookup a renderer for the component (the component renders itself).

        Show
        Mircea Toma added a comment - - edited Override UIComponent.getRendererType method in NavigationNotifier to always return null so that the render kit will not try to lookup a renderer for the component (the component renders itself).
        Hide
        Carmen Cristurean added a comment -

        Verified with r. 43291/ MyFaces and Mojarra JSF in Chrome38, IE10, FF33.

        Show
        Carmen Cristurean added a comment - Verified with r. 43291/ MyFaces and Mojarra JSF in Chrome38, IE10, FF33.
        Hide
        Ken Fyten added a comment -

        ICEfaces 4 trunk r43291

        icecore:push demo is not running properly in IE 10 or 11 An old issue has surfaced where the demo constantly updates more than once per second. This is seen with mojarra and myfaces libs. This issue was not present today when tested with r43281. Possibly to do with fix for ICE-10339.

        Show
        Ken Fyten added a comment - ICEfaces 4 trunk r43291 icecore:push demo is not running properly in IE 10 or 11 An old issue has surfaced where the demo constantly updates more than once per second. This is seen with mojarra and myfaces libs. This issue was not present today when tested with r43281. Possibly to do with fix for ICE-10339 .
        Hide
        Mircea Toma added a comment -

        Rolled back the http://jira.icesoft.org/browse/ICE-10339?focusedCommentId=55588&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-55588 fix. It seems that it breaks ace:tabSet proxy who indeed is doing some "revolutionary" work with the forms (and the DOM, for that matter).

        Show
        Mircea Toma added a comment - Rolled back the http://jira.icesoft.org/browse/ICE-10339?focusedCommentId=55588&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-55588 fix. It seems that it breaks ace:tabSet proxy who indeed is doing some "revolutionary" work with the forms (and the DOM, for that matter).
        Hide
        Mircea Toma added a comment - - edited

        icecore:push issue mentioned by Ken was fixed in ICE-10384.

        Show
        Mircea Toma added a comment - - edited icecore:push issue mentioned by Ken was fixed in ICE-10384 .

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Liana Munroe
          • Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: