code: private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException
  	{
  		// this should set servlet...
  		in.defaultReadObject();
  		try
  		{
  			init();
  		}
  		catch(ServletException e)
  		{	// This could happen if it is deserialized in
  			// a container where the name or path does not
  			// exist. I can't see this happening unless the
  			// container itself is screwed up though.
  			throw new IllegalStateException("Unable to reinitialize dispatcher after deserialization.", e);
  		}
  	}
docs: Custom deserialization. This handles setting transient fields
  through @{link #init()}.