ICEfaces
  1. ICEfaces
  2. ICE-10792

ace:panelStack Myfaces specific NPE when facelet=true

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.1
    • Fix Version/s: EE-4.1.0.GA, 4.2.BETA, 4.2
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      Tomcat 7, ICEfaces 4 trunk r 45903, All browsers. Not an issue with mojarra libs
    • Assignee Priority:
      P1

      Description

      An NPE occurs when facelet= true in an ace:panelStack when using myfaces libs. QA test app located at:
      http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/panelStack
      To reproduce:
      1.) Build the test app with -Dmyfaces=true, navigate to the DataTable demo (/dataTable.jsf)
      2.) Set the facelet to true
      3.) Note that the bottom panelStack is removed from the table
      4.) Use the drop down to select Employee Info
      5.) NPE occurs
      Note** this is not a specific ace:panelStack inside ace:dataTable issue. This can also be reproduced by adding the facelet="true" attribute to the ace:stackPane in the basic Overview demo.
      Stack trace:
      java.lang.NullPointerException
              at org.apache.myfaces.view.facelets.impl.FaceletCompositionContextImpl.i
      ncrementUniqueId(FaceletCompositionContextImpl.java:1036)
              at org.apache.myfaces.view.facelets.impl.DefaultFaceletContext.generateU
      niqueId(DefaultFaceletContext.java:345)
              at org.apache.myfaces.view.facelets.tag.jsf.ComponentTagHandlerDelegate.
      apply(ComponentTagHandlerDelegate.java:218)
              at javax.faces.view.facelets.DelegatingMetaTagHandler.apply(DelegatingMe
      taTagHandler.java:50)
              at javax.faces.view.facelets.DelegatingMetaTagHandler.applyNextHandler(D
      elegatingMetaTagHandler.java:55)
              at org.icefaces.ace.component.stackpane.StackPaneHandler.access$001(Stac
      kPaneHandler.java:25)
              at org.icefaces.ace.component.stackpane.StackPaneHandler$2.run(StackPane
      Handler.java:50)
              at org.icefaces.ace.component.stackpane.StackPane.createChildren(StackPa
      ne.java:121)
              at org.icefaces.ace.component.stackpane.StackPaneRenderer.encodeChildren
      (StackPaneRenderer.java:77)
              at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
      java:643)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      541)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      550)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      550)
              at org.apache.myfaces.shared.renderkit.html.HtmlTableRendererBase.render
      ColumnBody(HtmlTableRendererBase.java:680)
              at org.apache.myfaces.shared.renderkit.html.HtmlTableRendererBase.encode
      ColumnChild(HtmlTableRendererBase.java:639)
              at org.apache.myfaces.shared.renderkit.html.HtmlTableRendererBase.encode
      InnerHtml(HtmlTableRendererBase.java:493)
              at org.apache.myfaces.shared.renderkit.html.HtmlTableRendererBase.encode
      Children(HtmlTableRendererBase.java:208)
              at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.
      java:643)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      541)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      550)
              at javax.faces.component.UIComponentBase.encodeAll(UIComponentBase.java:
      550)
              at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPar
      tialViewContext.java:165)
              at javax.faces.context.PartialViewContextWrapper.processPartial(PartialV
      iewContextWrapper.java:85)
              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.rende
      rView(FaceletViewDeclarationLanguage.java:1891)
              at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandler
      Impl.java:313)
              at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap
      per.java:58)
              at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderRes
      ponseExecutor.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(Appl
      icationFilterChain.java:305)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
      ilterChain.java:210)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
      alve.java:222)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
      alve.java:123)
              at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
      torBase.java:502)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
      ava:171)
              at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
      ava:99)
              at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
      953)
              at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
      ve.java:118)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
      a:408)
              at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
      11Processor.java:1023)
              at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
      AbstractProtocol.java:589)
              at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
      t.java:310)
              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)

        Issue Links

          Activity

          Hide
          Liana Munroe added a comment - - edited

          Tested with ICEfaces 4 trunk r46090. The issue is now only seen in the demos that use c:forEach. This can be observed in the showcase > panelStack > Repetitive demo when my faces libs are used to build showcase.

          java.lang.NullPointerException
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.createAndQueueException(CheckDuplicateIdFaceletUtils.java:139)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:60)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82)
          at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil
          s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:41)
          at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrate
          gy.saveView(DefaultFaceletsStateManagementStrategy.java:679)
          at org.apache.myfaces.application.StateManagerImpl.saveView(StateManager
          Impl.java:213)
          at javax.faces.application.StateManager.getViewState(StateManager.java:2
          62)
          at org.icefaces.impl.context.DOMPartialViewContext.renderState(DOMPartia
          lViewContext.java:765)
          at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPar
          tialViewContext.java:305)
          at javax.faces.context.PartialViewContextWrapper.processPartial(PartialV
          iewContextWrapper.java:85)
          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.rende
          rView(FaceletViewDeclarationLanguage.java:1891)
          at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandler
          Impl.java:313)
          at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap
          per.java:58)
          at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderRes
          ponseExecutor.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(Appl
          icationFilterChain.java:305)
          at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
          ilterChain.java:210)
          at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
          alve.java:222)
          at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
          alve.java:123)
          at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
          torBase.java:502)
          at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
          ava:171)
          at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
          ava:99)
          at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
          953)
          at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
          ve.java:118)
          at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
          a:408)
          at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp
          11Processor.java:1023)
          at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(
          AbstractProtocol.java:589)
          at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
          t.java:310)
          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)
          Oct 15, 2015 10:01:33 AM org.apache.myfaces.context.servlet.ServletExternalConte
          xtImpl setResponseContentType
          SEVERE: Cannot set content type. Response already committed

          Show
          Liana Munroe added a comment - - edited Tested with ICEfaces 4 trunk r46090. The issue is now only seen in the demos that use c:forEach. This can be observed in the showcase > panelStack > Repetitive demo when my faces libs are used to build showcase. java.lang.NullPointerException at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.createAndQueueException(CheckDuplicateIdFaceletUtils.java:139) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:60) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:82) at org.apache.myfaces.view.facelets.compiler.CheckDuplicateIdFaceletUtil s.checkIdsStatefulComponents(CheckDuplicateIdFaceletUtils.java:41) at org.apache.myfaces.view.facelets.DefaultFaceletsStateManagementStrate gy.saveView(DefaultFaceletsStateManagementStrategy.java:679) at org.apache.myfaces.application.StateManagerImpl.saveView(StateManager Impl.java:213) at javax.faces.application.StateManager.getViewState(StateManager.java:2 62) at org.icefaces.impl.context.DOMPartialViewContext.renderState(DOMPartia lViewContext.java:765) at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPar tialViewContext.java:305) at javax.faces.context.PartialViewContextWrapper.processPartial(PartialV iewContextWrapper.java:85) 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.rende rView(FaceletViewDeclarationLanguage.java:1891) at org.apache.myfaces.application.ViewHandlerImpl.renderView(ViewHandler Impl.java:313) at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrap per.java:58) at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderRes ponseExecutor.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(Appl icationFilterChain.java:305) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve.java:222) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:123) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica torBase.java:502) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:99) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 953) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav a:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp 11Processor.java:1023) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process( AbstractProtocol.java:589) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin t.java:310) 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) Oct 15, 2015 10:01:33 AM org.apache.myfaces.context.servlet.ServletExternalConte xtImpl setResponseContentType SEVERE: Cannot set content type. Response already committed
          Hide
          Ken Fyten added a comment -

          Re-targeted for EE 4.1.

          Show
          Ken Fyten added a comment - Re-targeted for EE 4.1.
          Hide
          Judy Guglielmin added a comment -

          rev 48931 for IF 4 trunk.
          in order to test, testing will need to be done
          1) for mojarra
          2) for myfaces with the following context-params
          <context-param>
          <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS</param-name>
          <param-value>true</param-value>
          </context-param>
          <context-param>
          <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE</param-name>
          <param-value>true</param-value>
          </context-param>
          3) myfaces without these same 2 context-params

          should all behave the same without the user knowing the difference.

          Show
          Judy Guglielmin added a comment - rev 48931 for IF 4 trunk. in order to test, testing will need to be done 1) for mojarra 2) for myfaces with the following context-params <context-param> <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.apache.myfaces.REFRESH_TRANSIENT_BUILD_ON_PSS_PRESERVE_STATE</param-name> <param-value>true</param-value> </context-param> 3) myfaces without these same 2 context-params should all behave the same without the user knowing the difference.
          Hide
          Liana Munroe added a comment -

          Verified ICEfaces 4 trunk r48931 using ace:showcase demos and QA test apps with the testing matrix laid out in the comment above. Tomcat 8, IE 11, FF 43, Chrome 50.

          Show
          Liana Munroe added a comment - Verified ICEfaces 4 trunk r48931 using ace:showcase demos and QA test apps with the testing matrix laid out in the comment above. Tomcat 8, IE 11, FF 43, Chrome 50.
          Hide
          Carmen Cristurean added a comment -

          Verified EE-4.1.0.GA Jenkins Build 5 using ace:panelStack QA app (all three cases from comment above), and showcase on Tomcat 7/8, FF41, Chrome50, IE11.

          Show
          Carmen Cristurean added a comment - Verified EE-4.1.0.GA Jenkins Build 5 using ace:panelStack QA app (all three cases from comment above), and showcase on Tomcat 7/8, FF41, Chrome50, IE11.
          Hide
          Arturo Zambrano added a comment -

          r52742: backported fix along with code that this fix dependend on to the EE 3.3 maintenance branch

          Show
          Arturo Zambrano added a comment - r52742: backported fix along with code that this fix dependend on to the EE 3.3 maintenance branch

            People

            • Assignee:
              Judy Guglielmin
              Reporter:
              Liana Munroe
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: