I digged a little bit deeper.
The exception occurs in the getRendererViewId method of the FaceletViewHandler.
The method looks like
Code:
protected String getRenderedViewId(FacesContext context, String actionId) {
ExternalContext extCtx = context.getExternalContext();
String viewId = actionId;
if (extCtx.getRequestPathInfo() == null) {
String viewSuffix = this.getDefaultSuffix(context);
viewId = new StringBuffer(viewId).replace(viewId.lastIndexOf('.'),
viewId.length(),
viewSuffix).toString();
}
if (log.isLoggable(Level.FINE)) {
log.fine("ActionId -> ViewId: " + actionId + " -> " + viewId);
}
return viewId;
}
The problem is now the creation of the viewId. the actionId that is passed to the method is (in my case)
/WEB-INF/flows/main/main/main
the lastIndexOf on viewId returns -1 and this results in a StringIndexOutOfBoundsException.
Further investigating...