ICEfaces
  1. ICEfaces
  2. ICE-11269

ace:listControl in icecore:repeat errors

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.2
    • Fix Version/s: EE-4.2.0.GA
    • Component/s: ACE-Components, QA
    • Labels:
      None
    • Environment:
      ICEfaces4.2 release libraries
      Browsers: all
      Server: Tomcat7
    • Assignee Priority:
      P2

      Description

      A test page for ace:listControl inside icecore:repeat was added to the listControl QA test app:
      http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Nightly/listControl
      Test page: /listControlIcecoreRepeat.jsf

      When moving a list item using the listControl buttons, the moved items disappear instead of being rendered in the next list.
      A javax.el.PropertyNotFoundException occurs when submitting the form after moving items from one list to the other. In other instances, a NullPointerException occurs with the same steps.

      This may be as well a test app issue; the listControl inside ui:repeat works fine.


      Mar 09, 2017 5:14:04 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
      WARNING: javax.el.PropertyNotFoundException: /listControlIcecoreRepeat.xhtml @31,32 selections="#{emp.selections2}": Target Unreachable, identifier 'emp' resolved to null
      javax.faces.FacesException: javax.el.PropertyNotFoundException: /listControlIcecoreRepeat.xhtml @31,32 selections="#{emp.selections2}": Target Unreachable, identifier 'emp' resolved to null
              at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:273)
              at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
              at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:457)
              at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
              at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
              at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
              at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
              ................
      Caused by: javax.el.PropertyNotFoundException: /listControlIcecoreRepeat.xhtml @31,32 selections="#{emp.selections2}": Target Unreachable, identifier 'emp' resolved to null
              at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:133)
              at org.icefaces.ace.component.list.ListBase.setSelections(ListBase.java:1998)
              at org.icefaces.ace.component.list.ACEList.getSelections(ACEList.java:199)
              at org.icefaces.ace.component.list.ListDecoder.processSelections(ListDecoder.java:45)
              at org.icefaces.ace.component.list.ListRenderer.decode(ListRenderer.java:74)
              at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
              at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:523)
              at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:573)
              at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
              ...........
      Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'emp' resolved to null
              at org.apache.el.parser.AstValue.getTarget(AstValue.java:98)
              at org.apache.el.parser.AstValue.setValue(AstValue.java:210)
              at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:253)
              at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
              ... 46 more

      Mar 09, 2017 5:14:04 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
      SEVERE: javax.el.PropertyNotFoundException: /listControlIcecoreRepeat.xhtml @31,32 selections="#{emp.selections2}": Target Unreachable, identifier 'emp' resolved to null
              at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:133)
              at org.icefaces.ace.component.list.ListBase.setSelections(ListBase.java:1998)
              at org.icefaces.ace.component.list.ACEList.getSelections(ACEList.java:199)
              at org.icefaces.ace.component.list.ListDecoder.processSelections(ListDecoder.java:45)
              at org.icefaces.ace.component.list.ListRenderer.decode(ListRenderer.java:74)
              at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
              at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:523)
              at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:573)
              at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
              at org.icefaces.impl.component.UISeriesBase.visitTree(UISeriesBase.java:1041)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              at org.icefaces.impl.component.Repeat$4.run(Repeat.java:106)
              at org.icefaces.impl.component.Repeat.iterateOverChildren(Repeat.java:181)
              at org.icefaces.impl.component.Repeat.visitTree(Repeat.java:102)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              at javax.faces.component.UIForm.visitTree(UIForm.java:371)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              at com.sun.faces.context.PartialViewContextImpl.processComponents(PartialViewContextImpl.java:403)
              at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:266)
              ...................
      Caused by: javax.el.PropertyNotFoundException: Target Unreachable, identifier 'emp' resolved to null
              at org.apache.el.parser.AstValue.getTarget(AstValue.java:98)
              at org.apache.el.parser.AstValue.setValue(AstValue.java:210)
              at org.apache.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:253)
              at com.sun.faces.facelets.el.TagValueExpression.setValue(TagValueExpression.java:131)
              ... 46 more



      The NullPointerException error:


      Mar 09, 2017 5:03:00 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
      WARNING: java.lang.NullPointerException
      javax.faces.FacesException: java.lang.NullPointerException
              at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:273)
              at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
              at org.icefaces.impl.context.DOMPartialViewContext.processPartial(DOMPartialViewContext.java:457)
              at javax.faces.context.PartialViewContextWrapper.processPartial(PartialViewContextWrapper.java:219)
              at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:927)
              at com.sun.faces.lifecycle.ApplyRequestValuesPhase.execute(ApplyRequestValuesPhase.java:78)
              at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
              at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
              at javax.faces.webapp.FacesServlet.service(FacesServlet.java:658)
              at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
              at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
              at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
              ................
      Caused by: java.lang.NullPointerException
              at org.icefaces.ace.component.list.ListDecoder.processReorderings(ListDecoder.java:97)
              at org.icefaces.ace.component.list.ListRenderer.decode(ListRenderer.java:79)
              at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
              at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:523)
              at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:573)
              ..........

      Mar 09, 2017 5:03:00 PM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError
      SEVERE: java.lang.NullPointerException
              at org.icefaces.ace.component.list.ListDecoder.processReorderings(ListDecoder.java:97)
              at org.icefaces.ace.component.list.ListRenderer.decode(ListRenderer.java:79)
              at javax.faces.component.UIComponentBase.decode(UIComponentBase.java:832)
              at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:523)
              at com.sun.faces.context.PartialViewContextImpl$PhaseAwareVisitCallback.visit(PartialViewContextImpl.java:573)
              at com.sun.faces.component.visit.PartialVisitContext.invokeVisitCallback(PartialVisitContext.java:183)
              at org.icefaces.impl.component.UISeriesBase.visitTree(UISeriesBase.java:1041)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              at org.icefaces.impl.component.Repeat$4.run(Repeat.java:106)
              at org.icefaces.impl.component.Repeat.iterateOverChildren(Repeat.java:181)
              at org.icefaces.impl.component.Repeat.visitTree(Repeat.java:102)
              at javax.faces.component.UIComponent.visitTree(UIComponent.java:1700)
              ...............

        Activity

        Hide
        Mircea Toma added a comment -

        This exception occurs only with ace:listControl because the component invokes UIViewRoot.visitTree which causes the Repeat.visitTree to re-enter and rewrite the row index and var instance.

        Show
        Mircea Toma added a comment - This exception occurs only with ace:listControl because the component invokes UIViewRoot.visitTree which causes the Repeat.visitTree to re-enter and rewrite the row index and var instance.
        Hide
        Mircea Toma added a comment - - edited

        Made Repeat.iterateOverChildren method re-entrant. Also modified listControl test to avoid using EL expression in the component id attributes.

        Show
        Mircea Toma added a comment - - edited Made Repeat.iterateOverChildren method re-entrant. Also modified listControl test to avoid using EL expression in the component id attributes.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk r51435, Tomcat 8, IE 11, FF 47, Chrome 57.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk r51435, Tomcat 8, IE 11, FF 47, Chrome 57.

          People

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

            Dates

            • Created:
              Updated:
              Resolved: