If a server restarts, then data stored in session scope may be lost.
The behaviour of a web container in this case is not defined by the servlet
specification, and varies between implementations. Some web containers
provide "failover", in which session data is not lost during a
restart, while others do not.

In those that do implement failover, a common requirement is
that only Serializable objects can be restored.