summaryrefslogtreecommitdiff
path: root/qpid/java/broker/src/main/java/org/apache/qpid/server/handler/BasicRecoverMethodHandler.java
diff options
context:
space:
mode:
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.java14
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();
+ }
}
}