SIPMessage retval = null; if ( this instanceof SIPRequest) retval = new SIPRequest(); else retval  = new SIPResponse();
SIPMessage retval = (SIPMessage) super.clone();
	public Object clone() {		SIPMessage retval = null;		if ( this instanceof SIPRequest) 			retval = new SIPRequest();		else retval  = new SIPResponse();		retval.nameTable = new Hashtable();		retval.fromHeader = null;		retval.toHeader = null;		retval.cSeqHeader = null;		retval.callIdHeader = null;		retval.contentLengthHeader = null;		retval.maxForwardsHeader = null;		if (this.headers != null) {			retval.headers = new LinkedList();			for (Iterator iter = headers.iterator(); iter.hasNext(); ) {				SIPHeader hdr = (SIPHeader) iter.next();				retval.attachHeader((SIPHeader) hdr.clone());			}		}		if (this.messageContentBytes != null)			retval.messageContentBytes = (byte[]) this.messageContentBytes.clone();		if (this.messageContentObject != null)			retval.messageContentObject = makeClone(messageContentObject);		return retval;	}