Problem with AsyncTable on WM 9.12

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?

Hi Raf,

how did you migrate your portlet from 9.5 to 9.12?

If this might be a bug you should consider opening an incident with SAG support.
Eventually you might additional Fixes to be applied to your environments.


The key of any entry in the the request map must be a String object per the servlet and JSF specifications.

You should change the code to comply with the specifications.