From d3ac8682bcce5a9788a268fd71fd90b93ab3f1a1 Mon Sep 17 00:00:00 2001 From: fhanik Date: Wed, 9 Feb 2011 17:47:13 +0000 Subject: [PATCH] remove loop that should not be used at all. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1068996 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/catalina/tribes/group/RpcChannel.java | 64 +++++++++++----------- 1 file changed, 31 insertions(+), 33 deletions(-) diff --git a/java/org/apache/catalina/tribes/group/RpcChannel.java b/java/org/apache/catalina/tribes/group/RpcChannel.java index 38f63c501..b33214aba 100644 --- a/java/org/apache/catalina/tribes/group/RpcChannel.java +++ b/java/org/apache/catalina/tribes/group/RpcChannel.java @@ -132,44 +132,42 @@ public class RpcChannel implements ChannelListener{ final ExtendedRpcCallback excallback = (callback instanceof ExtendedRpcCallback)?((ExtendedRpcCallback)callback) : null; boolean asyncReply = ((replyMessageOptions & Channel.SEND_OPTIONS_ASYNCHRONOUS) == Channel.SEND_OPTIONS_ASYNCHRONOUS); Serializable reply = callback.replyRequest(rmsg.message,sender); - while (!finished) { - ErrorHandler handler = null; - final Serializable request = msg; - final Serializable response = reply; - final Member fsender = sender; - if (excallback!=null && asyncReply) { - handler = new ErrorHandler() { - @Override - public void handleError(ChannelException x, UniqueId id) { - excallback.replyFailed(request, response, fsender, x); - } - @Override - public void handleCompletion(UniqueId id) { - excallback.replySucceeded(request, response, fsender); - } - }; - } - rmsg.reply = true; - rmsg.message = reply; - try { - if (handler!=null) { - channel.send(new Member[] {sender}, rmsg,replyMessageOptions & ~Channel.SEND_OPTIONS_SYNCHRONIZED_ACK, handler); - } else { - channel.send(new Member[] {sender}, rmsg,replyMessageOptions & ~Channel.SEND_OPTIONS_SYNCHRONIZED_ACK); + ErrorHandler handler = null; + final Serializable request = msg; + final Serializable response = reply; + final Member fsender = sender; + if (excallback!=null && asyncReply) { + handler = new ErrorHandler() { + @Override + public void handleError(ChannelException x, UniqueId id) { + excallback.replyFailed(request, response, fsender, x); } - finished = true; - }catch ( Exception x ) { - if (excallback != null && !asyncReply) { - finished = !excallback.replyFailed(rmsg.message, reply, sender, x); - } else { - finished = true; - log.error("Unable to send back reply in RpcChannel.",x); + @Override + public void handleCompletion(UniqueId id) { + excallback.replySucceeded(request, response, fsender); } + }; + } + rmsg.reply = true; + rmsg.message = reply; + try { + if (handler!=null) { + channel.send(new Member[] {sender}, rmsg,replyMessageOptions & ~Channel.SEND_OPTIONS_SYNCHRONIZED_ACK, handler); + } else { + channel.send(new Member[] {sender}, rmsg,replyMessageOptions & ~Channel.SEND_OPTIONS_SYNCHRONIZED_ACK); } - if (finished && excallback != null && !asyncReply) { - excallback.replySucceeded(rmsg.message, reply, sender); + finished = true; + }catch ( Exception x ) { + if (excallback != null && !asyncReply) { + finished = !excallback.replyFailed(rmsg.message, reply, sender, x); + } else { + finished = true; + log.error("Unable to send back reply in RpcChannel.",x); } } + if (finished && excallback != null && !asyncReply) { + excallback.replySucceeded(rmsg.message, reply, sender); + } }//end if } -- 2.11.0