code: public void readExternal(ObjectInput in) throws IOException,
  			ClassNotFoundException {
  		super.readExternal(in);
  		String messageString = in.readUTF();
  		try {
  			message = SipFactoryImpl.messageFactory.createResponse(messageString);
  		} catch (ParseException e) {
  			throw new IllegalArgumentException("Message " + messageString + " previously serialized could not be reparsed", e);
  		}
  		boolean isOriginalRequestSerialized = in.readBoolean();
  		if (isOriginalRequestSerialized) {
  			originalRequest = (SipServletRequestImpl) in.readObject();
  		}
  		boolean isProxyBranchSerialized = in.readBoolean();
  		if (isProxyBranchSerialized) {
  			proxyBranch = (ProxyBranchImpl) in.readObject();
  		}
  		isProxiedResponse = in.readBoolean();
  		isResponseForwardedUpstream = in.readBoolean();
  		isAckGenerated = in.readBoolean();
  		isPrackGenerated = in.readBoolean();
  		hasBeenReceived = in.readBoolean();
  	}
docs: /*
  (non-Javadoc)
  @see java.io.Externalizable#readExternal(java.io.ObjectInput)