CometConnectionManagerValve is adding HttpServletRequest[] to HttpSession which is preventing the Session being serialized in a Clustered setup. We're resolving this locally using a serializable ConnectionList class with a transient Request[] i.e. public class ConnectionList implements Serializable { transient Request[] connectionList = null; ConnectionList(Request[] connectionList){ this.connectionList = connectionList; } public Request[] get(){ return connectionList; } }
Note that there is an attribute "sessionAttributeFilter" in the cluster manager configuration, that allows to decide which session attributes you want to be replicated. It was introduced in Tomcat 7.0.22. See: http://tomcat.apache.org/tomcat-7.0-doc/config/cluster-manager.html It is not a direct answer to your observation, but might be enough for a workaround. Therefore I keep this issue in status "New". Regards, Rainer
I'd be surprised if anyone was relying on the connection list being stored as an array of requests but in case they are it is safer to use the work=around for 7.0.x and earlier. I have applied a fix based on the suggested new class for Tomcat 8.