code: protected final void copyCommonFields( AbstractMessage clone )
      {
          clone.id = this.id;
          clone.correlId = this.correlId;
          clone.priority = this.priority;
          clone.deliveryMode = this.deliveryMode;
          clone.destination = this.destination;
          clone.expiration = this.expiration;
          clone.redelivered = this.redelivered;
          clone.replyTo = this.replyTo;
          clone.timestamp = this.timestamp;
          clone.type = this.type;   
          
          @SuppressWarnings("unchecked")
          Map<String,Object> propertyMapClone = this.propertyMap != null ? (Map<String,Object>)((HashMap<String,Object>)this.propertyMap).clone() : null;         
          clone.propertyMap = propertyMapClone;
          
          // Copy raw message cache if any
          clone.unserializationLevel = this.unserializationLevel; 
          if (this.rawMessage != null)
          	clone.rawMessage = this.rawMessage.copy();
      }
docs: Create an independant copy of this message