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);
+        }
     }
 }