I report here the same message I posted on JIRA:

Ok, I suppose that I found the problem.
This is the SUN RI UIData.getClientId() method:

public String getClientId(FacesContext context) {

       if (context == null) {
           throw new NullPointerException();
       }
String baseClientId = super.getClientId(context);
       if (rowIndex >= 0) {
return (baseClientId + NamingContainer.SEPARATOR_CHAR + rowIndex);
       } else {
           return (baseClientId);
       }
   }

As you can see, the rowIndex is checked.
But org.apache.myfaces.component.html.ext.HtmlDataTableHack.setRowIndex(int rowIndex) does NOT call

super.setRowIndex(rowIndex)

so the rowIndex property of UIData is always -1 and the client ID is not calculated according to the current row.
As a final result, the generated html page does not contain the proper ids.

Adding "super.setRowIndex(rowIndex)" at the beginning of HtmlDataTableHack.setRowIndex() solve this problem.


Martin Marinschek ha scritto:

Then post it, by any means. If neither Dennis, nor me, nor you can
find it, it won't be there ;)


Reply via email to