every once in a while, the conversationid comes out on the url as a page parameter. Looking at code in PersistentFacesState.execute...
Map requestParameterMap = facesContext.getExternalContext().getRequestParameterMap();
requestParameterMap.clear();
if (SeamUtilities.isSeamEnvironment())
{
//ICE-2990/JBSEAM-3426 must have empty requestAttributes for push to work with Seam
((BridgeExternalContext) facesContext.getExternalContext()).removeSeamAttributes();
}
then the following line is commented out:-
//Seam appears to need ViewState set during push
// see below
// requestParameterMap.put("javax.faces.ViewState", "ajaxpush");
not sure if this has anything to do with it as there is no comment on when this was commented out.
Anyhow, this exception is not consistent and can cause problems when it cannot find hibernate (no access to data). Still trying to figure out how to consistently get this exception thrown, but considering it has something to do with page parameters and conversationid occasionally getting parsed onto the url.
This could have side-effects for anything that uses action URLs, such as command
links and forms. From the documentation, of HttpServletResponse, it looks like
this code change should have no effect under most cases. However, the jsessionid
may be encoded into the URL, so that could affect applications where the
first page visited is an ICEfaces page prior to a session being established.