Uploaded image for project: 'MyFaces Core'
  1. MyFaces Core
  2. MYFACES-2685

Cannot call invokeOnComponent on UIColumn without rowIndex

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.8, 2.0.0
    • 1.2.9, 2.0.1
    • None
    • None

    Description

      Looking some jsf 2.0 code, I notice the current algorithm of UIData.invokeOnComponent cannot handle the case when the target is a UIColumn instance and no rowIndex is on clientId. Is that ok?

      Checking the new visit tree api, UIData.visitTree cleary says:

      "....If this component has children, for each UIColumn child:

      Call VisitContext.invokeVisitCallback(javax.faces.component.UIComponent, javax.faces.component.visit.VisitCallback) on that UIColumn instance. If such a call returns true, terminate visiting and return true from this method.

      If the child UIColumn has facets, call UIComponent.visitTree(javax.faces.component.visit.VisitContext, javax.faces.component.visit.VisitCallback) on each one....."

      I think we should do something like this:

      for (Iterator<UIComponent> itChildren = this.getChildren().iterator();
      !returnValue && itChildren.hasNext()
      {
      UIComponent child = itChildren.next();
      if (child instanceof UIColumn && clientId.equals(child.getClientId()))
      {
      try

      { callback.invokeContextCallback(context, child); }

      catch (Exception e)

      { throw new FacesException(e); }

      returnValue = true;
      }
      // process the child's facets
      for (Iterator<UIComponent> itChildFacets = child.getFacets().values().iterator();
      !returnValue && itChildFacets.hasNext()

      { //recursive call to find the component returnValue = itChildFacets.next().invokeOnComponent(context, clientId, callback); }

      }

      We can commit this one because this is really a defect-fix, not an incomplicant feature.

      Attachments

        Activity

          People

            lu4242 Leonardo Uribe
            lu4242 Leonardo Uribe
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: