Here's what it reads in Monson-Haefel's book (pp. 360-1):
"When a bean is about to be passivated, it's ejbPassivate () method is invoked, alerting the bean instance that it is about to enter the Passivated state. At this time, the bean instance should close any open resources and set all nontransient, nonserializable fields to null. This will prevent problems from occurring when the bean is serialized. Transient fields will simply be ignored.
"A bean's conversational state may consist of only primitive values, objects that are serializble, and the following special types:
[
EJB 2.0 and 1.1. SessionContext, EJBHome, EJBHome, EJBObject, UserTransaction, Context]
[EJB 2.0 only. EJBLocalHome, EJBLocalObject, References to managed resource factories]
"The types in this list (and their subtypes_ are handled specially by the passivation mechanism. They do not need to be serializable; they will be maintained through passivation and restored automatically to the bean instance when it is activated.
...
"Except for the special types listed earlier, all fields that are nontransient and nonserializable must be set to null before the instance is passivated or else the container will destroy the bean instance, making it unavailable for continued use by the client.
Cheers,
Darryl