You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2007/01/24 20:52:29 UTC
svn commit: r499551 -
/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java
Author: rhs
Date: Wed Jan 24 11:52:28 2007
New Revision: 499551
URL: http://svn.apache.org/viewvc?view=rev&rev=499551
Log:
Filled in MessageRecoverHandler.
Modified:
incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java
Modified: incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java
URL: http://svn.apache.org/viewvc/incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java?view=diff&rev=499551&r1=499550&r2=499551
==============================================================================
--- incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java (original)
+++ incubator/qpid/branches/qpid.0-9/java/broker/src/main/java/org/apache/qpid/server/handler/MessageRecoverHandler.java Wed Jan 24 11:52:28 2007
@@ -20,9 +20,12 @@
*/
package org.apache.qpid.server.handler;
+import org.apache.log4j.Logger;
+
import org.apache.qpid.AMQException;
import org.apache.qpid.framing.MessageRecoverBody;
import org.apache.qpid.protocol.AMQMethodEvent;
+import org.apache.qpid.server.AMQChannel;
import org.apache.qpid.server.exchange.ExchangeRegistry;
import org.apache.qpid.server.protocol.AMQProtocolSession;
import org.apache.qpid.server.queue.QueueRegistry;
@@ -31,6 +34,8 @@
public class MessageRecoverHandler implements StateAwareMethodListener<MessageRecoverBody>
{
+ private static final Logger _logger = Logger.getLogger(MessageRecoverHandler.class);
+
private static MessageRecoverHandler _instance = new MessageRecoverHandler();
public static MessageRecoverHandler getInstance()
@@ -39,13 +44,23 @@
}
private MessageRecoverHandler() {}
-
-
+
public void methodReceived (AMQProtocolSession protocolSession,
AMQMethodEvent<MessageRecoverBody> evt)
throws AMQException
{
- // TODO
+ _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());
+ }
+ MessageRecoverBody body = evt.getMethod();
+ if (body.requeue) {
+ channel.requeue();
+ } else {
+ channel.resend(protocolSession);
+ }
}
}