code: public void writeExternal(ObjectOutput out) throws IOException {
  		super.writeExternal(out);
  		if(originalRequest == null) {
  			out.writeBoolean(false);
  		} else {
  			out.writeBoolean(true);
  			out.writeObject(originalRequest);
  		}
  		if(proxyBranch == null) {
  			out.writeBoolean(false);
  		} else {
  			out.writeBoolean(true);
  			out.writeObject(proxyBranch);
  		}
  		out.writeBoolean(isProxiedResponse);
  		out.writeBoolean(isResponseForwardedUpstream);
  		out.writeBoolean(isAckGenerated);
  		out.writeBoolean(isPrackGenerated);
  		out.writeBoolean(hasBeenReceived);
  	}
docs: /*
  (non-Javadoc)
  @see java.io.Externalizable#writeExternal(java.io.ObjectOutput)