ICEfaces
  1. ICEfaces
  2. ICE-10771

ace:panelStack PropertyNotFoundException for ice:dataTable rowDataModel

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: EE-3.3.0.GA_P04
    • Fix Version/s: EE-3.3.0.GA_P04
    • Component/s: ICE-Components
    • Labels:
      None
    • Environment:
      jsf2.1

      Description

      use iceMock5 test case located at :-
      smb://iceads1.icesoft.domain/Public/Users/mircea/iceMock-1.0-SNAPSHOT.war
      deploy to tomcat 7
      click on "medium" button and then scroll down to "Do Something" button.
      ul 30, 2015 4:12:18 PM com.sun.faces.lifecycle.ApplyRequestValuesPhase execute
      WARNING: javax.el.PropertyNotFoundException: /WEB-INF/pages/renderers/_renderRelation.xhtml @14,25 value="#{fieldprxy.rowDataModel}": Property 'rowDataModel' not found on type com.ciminc.icemock.FieldProxy
      javax.faces.FacesException: javax.el.PropertyNotFoundException: /WEB-INF/pages/renderers/_renderRelation.xhtml @14,25 value="#{fieldprxy.rowDataModel}": Property 'rowDataModel' not found on type com.ciminc.icemock.FieldProxy
      at com.icesoft.faces.component.panelseries.UISeries.getValue(UISeries.java:66)
      at com.icesoft.faces.component.panelseries.PanelSeries.saveChild(PanelSeries.java:132)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:772)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildState(UISeriesBase.java:775)
      at org.icefaces.impl.component.UISeriesBase.saveChildrenState(UISeriesBase.java:766)
      at org.icefaces.impl.component.UISeriesBase.setRowIndex(UISeriesBase.java:123)
      at org.icefaces.impl.component.UISeriesBase.iterate(UISeriesBase.java:619)
      at org.icefaces.impl.component.UISeriesBase.processDecodes(UISeriesBase.java:520)
      at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1178)
      at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1178)
      at javax.faces.component.UIComponentBase.processDecodes(UIComponentBase.java:1178)
      at javax.faces.component.UIViewRoot.processDecodes(UIViewRoot.java:925)


      FieldProxySubClass should be the underlying object for that iteration of the panelstack.

      Notice in the FieldProxyGenerator line 74.
                  case 3:
                      fld.setGuiObject(FieldDefinition.GUIObject.RELATIONTABLE);
                      FieldProxySubClass assocFieldProxy = new FieldProxySubClass(fld, null);
                      proxy = assocFieldProxy;
                      break;

      Also If you notice in the _renderRelation.xhtml there is an expression #{fieldprxy.specializedVariable} which you can see renders properly in the display panel. But when you click the buttton you get an exception.

      for markup... see /pages/_renderRelation.xhtml in project.

        Activity

        Judy Guglielmin created issue -
        Judy Guglielmin made changes -
        Field Original Value New Value
        Assignee Mircea Toma [ mircea.toma ]
        Ken Fyten made changes -
        Fix Version/s EE-3.3.0.GA_P04 [ 12270 ]
        Ken Fyten made changes -
        Assignee Priority P1 [ 10010 ]
        Hide
        Mircea Toma added a comment - - edited

        I managed to reproduce the problem but only after this exception occurs first when clicking on the "medium" button:

        06-Aug-2015 00:28:47.475 SEVERE [http-nio-8080-exec-21] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError javax.faces.view.facelets.TagAttributeException: /WEB-INF/pages/renderers/_renderRadioGroup.xhtml @17,127 rendered="#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null}" Failed to parse the expression [#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null}]
        	at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:401)
        	at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:351)
        	at com.sun.faces.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:107)
        

        Reloading the page will then trigger the PropertyNotFoundException.

        Show
        Mircea Toma added a comment - - edited I managed to reproduce the problem but only after this exception occurs first when clicking on the "medium" button: 06-Aug-2015 00:28:47.475 SEVERE [http-nio-8080-exec-21] com.sun.faces.context.AjaxExceptionHandlerImpl.handlePartialResponseError javax.faces.view.facelets.TagAttributeException: /WEB-INF/pages/renderers/_renderRadioGroup.xhtml @17,127 rendered= "#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null }" Failed to parse the expression [#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null }] at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:401) at com.sun.faces.facelets.tag.TagAttributeImpl.getValueExpression(TagAttributeImpl.java:351) at com.sun.faces.facelets.tag.jsf.ComponentRule$ValueExpressionMetadata.applyMetadata(ComponentRule.java:107) Reloading the page will then trigger the PropertyNotFoundException .
        Hide
        Mircea Toma added a comment - - edited

        Modifying ui:fragment EL expression from

        <ui:fragment rendered="#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null}">
        

        to

        <ui:fragment rendered="#{fieldprxy.fieldDef['class'].simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null}">
        

        eliminates both exceptions (mentioned in the previous comment).
        It could be that ".class" has some overloaded behaviour, hence the failure to parse the EL expression.

        Show
        Mircea Toma added a comment - - edited Modifying ui:fragment EL expression from <ui:fragment rendered= "#{fieldprxy.fieldDef.class.simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null }" > to <ui:fragment rendered= "#{fieldprxy.fieldDef['class'].simpleName eq 'EntityFieldDefinition' and fieldprxy.value != null }" > eliminates both exceptions (mentioned in the previous comment). It could be that ".class" has some overloaded behaviour, hence the failure to parse the EL expression.
        Mircea Toma made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Hide
        Judy Guglielmin added a comment -

        please see this screen shot for the "Do Something" button on the "medium" page.

        Show
        Judy Guglielmin added a comment - please see this screen shot for the "Do Something" button on the "medium" page.
        Judy Guglielmin made changes -
        Attachment panelStackICE-10771.png [ 20784 ]
        Hide
        Judy Guglielmin added a comment -

        This Jira's issue is with the "Do Something" button. The exception is thrown when it is pressed (it is on the "Medium" page).

        Show
        Judy Guglielmin added a comment - This Jira's issue is with the "Do Something" button. The exception is thrown when it is pressed (it is on the "Medium" page).
        Judy Guglielmin made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #45837 Mon Aug 10 17:43:35 MDT 2015 mircea.toma ICE-10771 Override UIComponent.getFacetsAndChildren method to return an empty list when stack pane is not selected to ensure that data table's children visiting is blocked.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/stackpane/StackPane.java
        Hide
        Mircea Toma added a comment - - edited

        Overridden UIComponent.getFacetsAndChildren method in StackPane to returns the list of facets and children when stack pane rendered to ensure that datable's additional child visiting is blocked.

        Show
        Mircea Toma added a comment - - edited Overridden UIComponent.getFacetsAndChildren method in StackPane to returns the list of facets and children when stack pane rendered to ensure that datable's additional child visiting is blocked.
        Mircea Toma made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #45838 Tue Aug 11 07:54:06 MDT 2015 mircea.toma ICE-10771 Overridden _UIComponent.getFacetsAndChildren_ method in _StackPane_ to returns the list of facets and children only when the stack pane is rendered.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/stackpane/StackPane.java
        Hide
        Judy Guglielmin added a comment -

        see last comment that the actionListener on the "Do Something" button is not getting fired.

        Show
        Judy Guglielmin added a comment - see last comment that the actionListener on the "Do Something" button is not getting fired.
        Judy Guglielmin made changes -
        Resolution Fixed [ 1 ]
        Status Resolved [ 5 ] Reopened [ 4 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #45841 Tue Aug 11 15:20:36 MDT 2015 mircea.toma ICE-10771 Refine test when to return empty list.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/stackpane/StackPane.java
        Hide
        Mircea Toma added a comment - - edited

        Refined the test that decides when to return the list of children. This works around the state saving/restoring run by datable during "apply request values" phase.

        Show
        Mircea Toma added a comment - - edited Refined the test that decides when to return the list of children. This works around the state saving/restoring run by datable during "apply request values" phase.
        Mircea Toma made changes -
        Status Reopened [ 4 ] Resolved [ 5 ]
        Resolution Fixed [ 1 ]
        Repository Revision Date User Message
        ICEsoft Public SVN Repository #45848 Thu Aug 13 12:41:50 MDT 2015 mircea.toma ICE-10771 Removed method overriding that addresses only ice:* component quirks.
        Files Changed
        Commit graph MODIFY /icefaces4/trunk/icefaces/ace/component/src/org/icefaces/ace/component/stackpane/StackPane.java
        Ken Fyten made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

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

            Dates

            • Created:
              Updated:
              Resolved: