From c303d65ac74d5324b885da7cf7dbf655af8a93e2 Mon Sep 17 00:00:00 2001 From: Robert Godfrey Date: Sat, 9 Aug 2014 16:05:05 +0000 Subject: QPID-4429 : [Java] Implement max frame size negotiation checks in 0-x protocols git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1616977 13f79535-47bb-0310-9956-ffa450edef68 --- .../client/handler/ConnectionTuneMethodHandler.java | 2 ++ .../qpid/client/protocol/AMQProtocolHandler.java | 13 +++++++++---- .../qpid/client/protocol/AMQProtocolSession.java | 20 +++++++++++++------- 3 files changed, 24 insertions(+), 11 deletions(-) (limited to 'qpid/java/client/src') diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java index 617380e149..1f2df2026b 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionTuneMethodHandler.java @@ -72,6 +72,8 @@ public class ConnectionTuneMethodHandler implements StateAwareMethodListener dataBlocks = _codecFactory.getDecoder().decodeBuffer(msg); + final ArrayList dataBlocks = _decoder.decodeBuffer(msg); // Decode buffer int size = dataBlocks.size(); @@ -944,4 +944,9 @@ public class AMQProtocolHandler implements ProtocolEngine { _heartbeatListener.heartbeatReceived(); } + + public void setMaxFrameSize(final long frameMax) + { + _decoder.setMaxFrameSize(frameMax == 0l ? 0xffffffffl : frameMax); + } } diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java index 121715d439..2c69aa1b51 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java @@ -20,8 +20,16 @@ */ package org.apache.qpid.client.protocol; +import java.nio.ByteBuffer; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentMap; + +import javax.jms.JMSException; +import javax.security.sasl.SaslClient; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; + import org.apache.qpid.AMQException; import org.apache.qpid.client.AMQConnection; import org.apache.qpid.client.AMQSession; @@ -47,13 +55,6 @@ import org.apache.qpid.transport.ConnectionSettings; import org.apache.qpid.transport.Sender; import org.apache.qpid.transport.TransportException; -import javax.jms.JMSException; -import javax.security.sasl.SaslClient; - -import java.nio.ByteBuffer; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - /** * Wrapper for protocol session that provides type-safe access to session attributes. *

@@ -543,4 +544,9 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession { return _connectionStartServerProperties; } + + public void setMaxFrameSize(final long frameMax) + { + _protocolHandler.setMaxFrameSize(frameMax); + } } -- cgit v1.2.1