Hello,

We are developing an application that uses OpenLaszlo and Spring Web Flow 1.0-rc3.

The application works perfectly in one Tomcat 5.5 node. But, when we deploy the application in a Tomcat 5.5 cluster (two nodes with mod_jk), we are having problems with session replication.

To execute flow, we are using FlowExecutor, launch and signalEvent methods.

The following exception is thrown:

Code:
ERROR - Unable to serialize delta request for session id [....... .node01]
java.io.NotSerializableException: org.springframework.webflow.context.SharedMapDecorator
      at ....
      ....
We store externalContext.getSessionMap() in the HTTP Session in order to invoke FlowExecutor.launch method next time.

Code:
  ...
  externalContext.setSessionMap((SharedAttributeMap) httpSession.getAttribute("sessionMap"));
  externalContext.setApplicationMap((SharedAttributeMap) httpSession.getAttribute("applicationMap"));

  ...

  WebApplicationContext applicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(OpenLaszloHelper.getServletRequest().getSession().getServletContext());
  FlowExecutor flowExecutor = (FlowExecutor) applicationContext.getBean("flowExecutor");

  ResponseInstruction responseInstruction = flowExecutor.signalEvent(eventId, flowExecutionKey, externalContext);

  ...
I have downloaded SharedMapDecorator.java source and added "implements Serializable" and now it works perfectly in the cluster, balancing and replicating the session, but I suspect there is a better way to do this.

Code:
public class SharedMapDecorator implements SharedMap, Serializable {
    ...
Any help would be very much appreciated.

Thanks a lot.