diff options
Diffstat (limited to 'qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java')
-rw-r--r-- | qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java index 85e802d10d..f83d38ad47 100644 --- a/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java +++ b/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java @@ -46,12 +46,22 @@ public class BasicRecoverMethodHandler implements StateAwareMethodListener<Basic ExchangeRegistry exchangeRegistry, AMQProtocolSession protocolSession, AMQMethodEvent<BasicRecoverBody> evt) throws AMQException { - _logger.debug("Recover received on protocol session " + protocolSession + " and channel " + evt.getChannelId()); + _logger.debug("Recover received on protocol session " + protocolSession + " and channel " + evt.getChannelId()); AMQChannel channel = protocolSession.getChannel(evt.getChannelId()); + if (channel == null) { throw new AMQException("Unknown channel " + evt.getChannelId()); } - channel.resend(protocolSession); + + if (evt.getMethod().getRequeue()) + { + //fixme need tests to exercise + channel.requeue(); + } + else + { + channel.resend(); + } } } |