I think there is some kind of bug in WM 9.12. Running CAF Portlet application which works good on version 9.5 causes ClassCastException while rendering AsyncTable:
Decompiled ScriptBase.getName() method looks like this:
public String getName()
{
Object currentValue = getRowvariable();
if (currentValue == null) {
currentValue = getClientId(FacesContext.getCurrentInstance());
}
if ((currentValue instanceof ITableContentProvider)) {
currentValue = getClientId(FacesContext.getCurrentInstance()) + ((ITableContentProvider)currentValue).getRowIndex();
}
FacesContext facesContext = FacesContext.getCurrentInstance();
Map<String, Object> requestMap = facesContext.getExternalContext().getRequestMap();
String name = (String)requestMap.get(currentValue);
if (name == null)
{
name = generateUniqueName();
requestMap.put((String)currentValue, name); // <--- ClassCastException
}
return name;
}
In previous version of this method there were no casting to String, since requestMap was untyped Map. currentValue is a RowVariable so it could be any object.
Can someone confirm that this is a bug? If no, then how to solve this problem?