Author: rgodfrey
Date: Mon Oct 13 09:06:11 2014
New Revision: 1631320

URL: http://svn.apache.org/r1631320
Log:
Fix the invalid channel proxy case

Modified:
    
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java

Modified: 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
URL: 
http://svn.apache.org/viewvc/qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java?rev=1631320&r1=1631319&r2=1631320&view=diff
==============================================================================
--- 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
 (original)
+++ 
qpid/branches/QPID-6125-ProtocolRefactoring/java/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQProtocolEngine.java
 Mon Oct 13 09:06:11 2014
@@ -1108,12 +1108,11 @@ public class AMQProtocolEngine implement
             {
                 _logger.error("Exception caught in " + this + ", closing 
connection explicitly: " + throwable, throwable);
 
-
-                ConnectionCloseBody closeBody = 
_methodRegistry.createConnectionCloseBody(200,
+                ConnectionCloseBody closeBody = 
_methodRegistry.createConnectionCloseBody(AMQConstant.INTERNAL_ERROR.getCode(),
                                                                                
              AMQShortString.validValueOf(
                                                                                
                      throwable.getMessage()),
-                                                                               
              0,
-                                                                               
              0);
+                                                                               
              _currentClassId,
+                                                                               
              _currentMethodId);
 
                 writeFrame(closeBody.generateFrame(0));
 
@@ -1790,8 +1789,17 @@ public class AMQProtocolEngine implement
                         public Object invoke(final Object proxy, final Method 
method, final Object[] args)
                                 throws Throwable
                         {
-                            closeConnection(AMQConstant.CHANNEL_ERROR, 
"Unknown channel id: " + channelId, channelId);
-
+                            if(method.getName().startsWith("receive"))
+                            {
+                                closeConnection(AMQConstant.CHANNEL_ERROR,
+                                                "Unknown channel id: " + 
channelId,
+                                                channelId);
+                                return null;
+                            }
+                            else 
if(method.getName().equals("ignoreAllButCloseOk"))
+                            {
+                                return false;
+                            }
                             return null;
                         }
                     });



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to