¿Cómo invocar la acción JSF en una clase anónima? EL no puede acceder a él

Quiero tener un menú genérico en mi aplicación JSF (MyFaces 1.2).

<h:form>
  <h:dataTable id="dt1" value="#{portal.actionList}" var="item">
    <f:facet name="header">
        <h:outputText value="Menu" />
    </f:facet>
    <h:column>
        <h:commandLink action="#{item.action}">
            <h:outputText value="clickme"/>
        </h:commandLink>
     </h:column>
   </h:dataTable>
 </h:form>

Entonces mi portal en el ámbito de sesión se vería así:

 class Portal {
    private ArrayList<IAction> list = new ArrayList<IAction>();

    public Portal() {
       list.add(new IAction() {
                public action() {
                    log.info("called action here");
                }
        });
    }
    public ArrayList<IAction> getActionList() {
        return list;
    }
 }

Cuando ejecuto este código, se mostrará bien. Pero cuando intente ejecutar la acción haciendo clic en el enlace de comando "clickme", se producirá la siguiente excepción:

  Class org.apache.el.parser.AstValue can not access a member of class Portal$1 with modifiers "public"

¿Hay alguna manera de mostrar una lista de clases anónimas, a partir de la cual un método (en este ejemploITemplate.action()) se puede ejecutar?

Editar:

Funciona cuando uso una clase (interna). Como por ejemplo:

    class Bla implements IAction {
         public void action() {
             log.info("yes, i am working");
         }

y en el constructor del portal

 public Portal() {
   list.add( new Bla() );
}

Pero no es así como lo quiero ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta