I rollback the wrapping of session attributes. Alos, I made some of the objects stored in session serializable, although I didn't fix the exceptions where Sun-RI code tries to store value bindings into the session with non-serializable values.
Here's the stacktrace:
java.lang.IllegalArgumentException: setAttribute: Non-serializable attribute
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1255)
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1233)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:129)
at com.icesoft.faces.webapp.http.servlet.ServletSessionMap.setAttribute(ServletSessionMap.java:26)
at com.icesoft.faces.context.AbstractAttributeMap.put(AbstractAttributeMap.java:166)
at com.sun.faces.application.ApplicationAssociate.createAndMaybeStoreManagedBeans(ApplicationAssociate.java:299)
at com.sun.faces.el.VariableResolverImpl.resolveVariable(VariableResolverImpl.java:97)
at com.sun.faces.el.impl.NamedValue.evaluate(NamedValue.java:145)
at com.sun.faces.el.impl.ComplexValue.evaluate(ComplexValue.java:166)
at com.sun.faces.el.impl.ExpressionEvaluatorImpl.evaluate(ExpressionEvaluatorImpl.java:263)
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:160)
at com.sun.faces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:143)
at javax.faces.component.UIOutput.getValue(UIOutput.java:167)
............
server exception log