Author: rgodfrey
Date: Mon Jul 6 16:37:22 2015
New Revision: 1689451
URL: http://svn.apache.org/r1689451
Log:
QPID-6624 : [Java Broker] If the default reply is not a supported protocol
version - use the latest supported version instead
Removed:
qpid/java/trunk/systests/src/test/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactoryTest.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngineFactory.java
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java?rev=1689451&r1=1689450&r2=1689451&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/model/port/AmqpPortImpl.java
Mon Jul 6 16:37:22 2015
@@ -398,12 +398,23 @@ public class AmqpPortImpl extends Abstra
private Protocol getDefaultAmqpSupportedReply()
{
- String defaultAmqpSupportedReply =
System.getProperty(BrokerProperties.PROPERTY_DEFAULT_SUPPORTED_PROTOCOL_REPLY);
+ String defaultAmqpSupportedReply =
getContextKeys(false).contains(BrokerProperties.PROPERTY_DEFAULT_SUPPORTED_PROTOCOL_REPLY)
?
+ getContextValue(String.class,
BrokerProperties.PROPERTY_DEFAULT_SUPPORTED_PROTOCOL_REPLY) : null;
+ Protocol protocol = null;
if (defaultAmqpSupportedReply != null &&
defaultAmqpSupportedReply.length() != 0)
{
- return Protocol.valueOf("AMQP_" +
defaultAmqpSupportedReply.substring(1));
+ protocol = Protocol.valueOf("AMQP_" +
defaultAmqpSupportedReply.substring(1));
}
- return null;
+ final Set<Protocol> protocolSet = getProtocols();
+ if(protocol != null && !protocolSet.contains(protocol))
+ {
+ LOGGER.warn("The configured default reply ({}) to an unsupported
protocol version initiation is not"
+ + " supported on this port. Only the following
versions are supported: {}",
+ defaultAmqpSupportedReply, protocolSet);
+
+ protocol = null;
+ }
+ return protocol;
}
public static Set<Protocol> getInstalledProtocols()
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java?rev=1689451&r1=1689450&r2=1689451&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngine.java
Mon Jul 6 16:37:22 2015
@@ -26,6 +26,7 @@ import java.net.SocketAddress;
import java.nio.ByteBuffer;
import java.security.cert.Certificate;
import java.util.Set;
+import java.util.TreeSet;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
@@ -69,7 +70,7 @@ public class MultiVersionProtocolEngine
public MultiVersionProtocolEngine(final Broker<?> broker,
final Set<Protocol> supported,
- final Protocol defaultSupportedReply,
+ Protocol defaultSupportedReply,
AmqpPort<?> port,
Transport transport,
final long id,
@@ -78,8 +79,10 @@ public class MultiVersionProtocolEngine
{
if(defaultSupportedReply != null &&
!supported.contains(defaultSupportedReply))
{
- throw new IllegalArgumentException("The configured default reply
(" + defaultSupportedReply
- + ") to an unsupported protocol
version initiation is itself not supported!");
+ _logger.warn("The configured default reply ({}) to an unsupported
protocol version initiation is not"
+ + " supported on this port. Only the following
versions are supported: {}",
+ defaultSupportedReply, supported);
+ defaultSupportedReply = null;
}
_id = id;
Modified:
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngineFactory.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngineFactory.java?rev=1689451&r1=1689450&r2=1689451&view=diff
==============================================================================
---
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngineFactory.java
(original)
+++
qpid/java/trunk/broker-core/src/main/java/org/apache/qpid/server/transport/MultiVersionProtocolEngineFactory.java
Mon Jul 6 16:37:22 2015
@@ -27,6 +27,9 @@ import java.util.List;
import java.util.Set;
import java.util.concurrent.atomic.AtomicLong;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
import org.apache.qpid.server.logging.messages.PortMessages;
import org.apache.qpid.server.logging.subjects.PortLogSubject;
import org.apache.qpid.server.model.Broker;
@@ -40,6 +43,7 @@ import org.apache.qpid.server.plugin.Qpi
public class MultiVersionProtocolEngineFactory implements ProtocolEngineFactory
{
private static final AtomicLong ID_GENERATOR = new AtomicLong(0);
+ private static final Logger _logger =
LoggerFactory.getLogger(MultiVersionProtocolEngineFactory.class);
private final Broker<?> _broker;
private final Set<Protocol> _supported;
@@ -51,15 +55,17 @@ public class MultiVersionProtocolEngineF
_connectionCountDecrementingTask = new
ConnectionCountDecrementingTask();
public MultiVersionProtocolEngineFactory(Broker<?> broker,
- final Set<Protocol>
supportedVersions,
- final Protocol
defaultSupportedReply,
+ Set<Protocol> supportedVersions,
+ Protocol defaultSupportedReply,
AmqpPort<?> port,
Transport transport)
{
if(defaultSupportedReply != null &&
!supportedVersions.contains(defaultSupportedReply))
{
- throw new IllegalArgumentException("The configured default reply
(" + defaultSupportedReply
- + ") to an unsupported protocol
version initiation is itself not supported!");
+ _logger.warn("The configured default reply ({}) to an unsupported
protocol version initiation is not"
+ + " supported on this port. Only the following
versions are supported: {}",
+ defaultSupportedReply, supportedVersions);
+ defaultSupportedReply = null;
}
_broker = broker;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]