@Override public void swapState(Routable rhs) { super.swapState(rhs); if (rhs instanceof DocumentMessage) { DocumentMessage msg = (DocumentMessage)rhs; DocumentProtocol.Priority pri = this.priority; this.priority = msg.priority; msg.priority = pri; LoadType lt = this.loadType; this.loadType = msg.loadType; msg.loadType = lt; } }
/** * Conveniece method for acknowledging a message back to the sender. * * This is equivalent to: * <pre> * Reply ack = new EmptyReply(); * ack.swapState(msg); * reply(ack); * </pre> * * Messages should be acknowledged when * <ul> * <li>this destination has safely and permanently applied the message, or * <li>an intermediate determines that the purpose of the message is fullfilled without forwarding the message * </ul> * * @param msg The message to acknowledge back to the sender. * @see #reply */ public void acknowledge(Message msg) { Reply ack = new EmptyReply(); msg.swapState(ack); reply(ack); }
Reply createSendTimedoutReply(Message msg, Error error) { Reply reply = new EmptyReply(); reply.setMessage(msg); reply.addError(error); msg.swapState(reply); return reply; }
public void handleMessage(Message message) { Reply reply = ((DocumentMessage)message).createReply(); message.swapState(reply); params.getDataHandler().onMessage(message, new AckToken(reply)); }
private MessageHandler createMessageHandler() { return (message) -> { try { taskExecutor.submitTask(new HandleMessageTask(message)); } catch (RejectedExecutionException e) { Reply reply = ((DocumentMessage)message).createReply(); message.swapState(reply); reply.addError(new Error( DocumentProtocol.ERROR_ABORTED, "Visitor session has been aborted")); receiver.reply(reply); } }; }