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 ;)