public ConnectionContext copy() {
   ConnectionContext rc = new ConnectionContext(this.messageEvaluationContext);
   rc.connection = this.connection;
   rc.connector = this.connector;
   rc.broker = this.broker;
   rc.inRecoveryMode = this.inRecoveryMode;
   rc.transaction = this.transaction;
   rc.transactions = this.transactions;
   rc.securityContext = this.securityContext;
   rc.connectionId = this.connectionId;
   rc.clientId = this.clientId;
   rc.userName = this.userName;
   rc.reconnect = this.reconnect;
   rc.wireFormatInfo = this.wireFormatInfo;
   rc.longTermStoreContext = this.longTermStoreContext;
   rc.producerFlowControl = this.producerFlowControl;
   rc.messageAuthorizationPolicy = this.messageAuthorizationPolicy;
   rc.networkConnection = this.networkConnection;
   rc.faultTolerant = this.faultTolerant;
   rc.stopping.set(this.stopping.get());
   rc.dontSendReponse = this.dontSendReponse;
   rc.clientMaster = this.clientMaster;
   return rc;
 }