[ 
http://issues.apache.org/jira/browse/MYFACES-222?page=comments#action_64639 ]
     
Mike Kienenberger commented on MYFACES-222:
-------------------------------------------

This issue might as well be closed and marked as a duplicate of [MYFACES-174].

Upgrading the latest svn version of myfaces also fixes the problem.

> UIColumns loses rowIndex on renderColumnBody
> --------------------------------------------
>
>          Key: MYFACES-222
>          URL: http://issues.apache.org/jira/browse/MYFACES-222
>      Project: MyFaces
>         Type: Bug
>     Versions: 1.0.9 beta
>  Environment: myfaces-1.0.9
>     Reporter: Mike Kienenberger
>     Assignee: sean schofield

>
> I'm using UIColumns (myfaces-1.0.9), and I've hit what appears to be a bug.
> I can initialize my page, and then update my page, but I get an
> IllegalArgumentException("row is unavailable") exception when the page
> is being rendered (but after all of the actions for that page have
> been processed).
> The problem appears to be in here:
> HtmlTableRendererBase.encodeChildren() contains:
>                            columns.setRowIndex(k);
>                            String columnStyle = styles.getColumnStyle(j);
>                            renderColumnBody(facesContext, writer,
> uiData, child, columnStyle);
> k starts out as 0.  renderColumnBody() eventually calls
>        UIColumns(UIData).isAllChildrenAndFacetsValid() line: 646
>        UIColumns(UIData).encodeBegin(FacesContext) line: 594
>        RendererUtils.renderChild(FacesContext, UIComponent) line: 482
>        HtmlTableRenderer(HtmlTableRendererBase).renderColumnBody(FacesContext,
> ResponseWriter, UIData, UIComponent, String) line: 205
> and isAllChildrenAndFacetsValid cycles through the rowIndexes, and
> ends up setting it to -1.
> And then sometime later my own code gets called via
>        HtmlSelectBooleanCheckbox(UIOutput).getValue() line: 75
>        RendererUtils.getBooleanValue(UIComponent) line: 213
>        HtmlCheckboxRenderer(HtmlCheckboxRendererBase).encodeEnd(FacesContext,
> UIComponent) line: 94
>        HtmlSelectBooleanCheckbox(UIComponentBase).encodeEnd(FacesContext) 
> line: 341
>        RendererUtils.renderChild(FacesContext, UIComponent) line: 491
>        RendererUtils.renderChildren(FacesContext, UIComponent) line: 468
>        RendererUtils.renderChild(FacesContext, UIComponent) line: 489
>        HtmlTableRenderer(HtmlTableRendererBase).renderColumnBody(FacesContext,
> ResponseWriter, UIData, UIComponent, String) line: 205
> but by this point, the rowIndex is -1 rather than the original 0 value
> it should have been.
> I "fixed" this in a 2005-04-29 CVS checkout with the following patch.
> However, I don't claim to know if this will break something else.
> Index: UIColumns.java
> ===================================================================
> RCS file: 
> /home/cvspublic/incubator-myfaces/src/share/org/apache/myfaces/component/UIColumns.java,v
> retrieving revision 1.1
> diff -u -r1.1 UIColumns.java
> --- UIColumns.java    29 Mar 2005 11:40:50 -0000      1.1
> +++ UIColumns.java    29 Apr 2005 22:27:45 -0000
> @@ -15,7 +15,10 @@
>   */
>  package org.apache.myfaces.component;
>  
> +import java.io.IOException;
>  import javax.faces.component.UIData;
> +import javax.faces.context.FacesContext;
>  
>  /**
>   * @author Mathias Broekelmann (latest modification by $Author: matzew $)
> @@ -53,4 +56,18 @@
>    {
>      return COMPONENT_FAMILY;
>    }
> +  
> +     public void encodeBegin(FacesContext context) throws IOException
> +     {
> +             int savedRowIndex = getRowIndex();
> +             super.encodeBegin(context);
> +             setRowIndex(savedRowIndex);
> +     }
> +
> +     public void encodeEnd(FacesContext context) throws IOException
> +     {
> +             int savedRowIndex = getRowIndex();
> +             super.encodeEnd(context);
> +             setRowIndex(savedRowIndex);
> +     }
>  }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to