I also see the client error when clicking on a row expansion icon and I also see the same problem in the Easy Expandable Table example:
<error-name>java.lang.UnsupportedOperationException</error-name><error-message><![CDATA[this method is here only to maintain binary compatibility w/ the RI]]>
Looking in the MyFaces code, I find this aligns with Phillips observation about the setDataModel() method of UIData:
protected void setDataModel(DataModel dataModel)
{
throw new UnsupportedOperationException("this method is here only to maintain binary compatibility w/ the RI");
}
The only place I could find that call being used was in org.icefaces.impl.component.UISeriesBase:
public void broadcast(FacesEvent event)
throws AbortProcessingException {
if (!(event instanceof RowEvent))
{
super.broadcast(event);
return;
}
FacesContext context = FacesContext.getCurrentInstance();
// Set up the correct context and fire our wrapped event
RowEvent revent = (RowEvent) event;
if (isNestedWithinUIData())
{
setDataModel(null); <--NOT IMPLMENTED IN MYFACES
}
...
but the broadcast method is used fairly extensively. So we either need to override setDataModel in the appropriate place in our class hierarch or catch/log the exception.
correct behaviour after using the <h:dataTable> tag, although styling is broken