code: private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException
  	{
  
  		ois.defaultReadObject();
  
  		initialize(); // init transient fields
  
  		bcsPreDeserializationHook(ois);
  
  		if (this == getBeanContextPeer())
  		{
  			readChildren(ois);
  		}
  
  		deserialize(ois, bcmListeners);
  	}
docs: The implementation goes through following steps:
  <p>
  <ol>
  <li>Reads non-transient properties by calling <code>defaultReadObject()</code>.</li>
  <li>Calls <code>bcsPreDeserializationHook()</code>.</li>
  <li>Reads children by calling <code>readChildren()</code> if this context works standalone. Otherwise it is the peer's responsibility to call
  <code>readChildren()</code> after this object is deserialized.</li>
  <li>Reads serializable membership listeners.</li>
  </ol>
  </p>
  
  @param ois
  the object input stream
  @throws IOException
  if I/O error occurs
  @throws ClassNotFoundException
  if class of read object is not found