Repository: qpid-broker-j Updated Branches: refs/heads/master af10b7e4b -> a6a02baa7
QPID-7932: [Java Broker, AMQP 1.0] Further decoding improvements Project: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/repo Commit: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/commit/a6a02baa Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/a6a02baa Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/a6a02baa Branch: refs/heads/master Commit: a6a02baa7e5c85c391750c5147a37e9eae343b00 Parents: af10b7e Author: Lorenz Quack <lqu...@apache.org> Authored: Mon Oct 2 08:00:29 2017 +0100 Committer: Lorenz Quack <lqu...@apache.org> Committed: Mon Oct 2 12:20:59 2017 +0100 ---------------------------------------------------------------------- .../v1_0/CompositeTypeConstructorGenerator.java | 2 +- .../v1_0/store/bdb/LinkKeyEntryBinding.java | 11 +- .../protocol/v1_0/store/jdbc/JDBCLinkStore.java | 4 + .../protocol/v1_0/AMQPConnection_1_0Impl.java | 13 +- .../protocol/v1_0/DeserializationFactories.java | 210 +++++++++---------- .../protocol/v1_0/MessageMetaData_1_0.java | 2 - .../protocol/v1_0/SendingLinkEndpoint.java | 4 +- .../qpid/server/protocol/v1_0/Session_1_0.java | 2 +- .../v1_0/StandardReceivingLinkEndpoint.java | 2 +- .../protocol/v1_0/codec/ProtocolHandler.java | 2 +- .../soleconn/SoleConnectionDetectionPolicy.java | 23 +- .../SoleConnectionEnforcementPolicy.java | 23 +- .../v1_0/type/messaging/StdDistMode.java | 22 +- .../v1_0/type/messaging/TerminusDurability.java | 36 ++-- .../type/messaging/TerminusExpiryPolicy.java | 45 ++-- .../codec/AmqpSequenceConstructor.java | 10 +- .../codec/ApplicationPropertiesConstructor.java | 9 +- .../type/messaging/codec/DataConstructor.java | 9 +- .../codec/DeliveryAnnotationsConstructor.java | 9 +- .../codec/ExactSubjectFilterConstructor.java | 9 +- .../type/messaging/codec/FooterConstructor.java | 9 +- .../codec/JMSSelectorFilterConstructor.java | 9 +- .../codec/MatchingSubjectFilterConstructor.java | 9 +- .../codec/MessageAnnotationsConstructor.java | 9 +- .../protocol/v1_0/type/security/SaslCode.java | 55 ++--- .../type/transaction/TransactionErrors.java | 34 +-- .../v1_0/type/transaction/TxnCapability.java | 55 ++--- .../protocol/v1_0/type/transport/AmqpError.java | 140 +++++++------ .../v1_0/type/transport/ConnectionError.java | 44 ++-- .../protocol/v1_0/type/transport/LinkError.java | 54 ++--- .../v1_0/type/transport/ReceiverSettleMode.java | 24 ++- .../protocol/v1_0/type/transport/Role.java | 24 ++- .../v1_0/type/transport/SenderSettleMode.java | 35 ++-- .../v1_0/type/transport/SessionError.java | 44 ++-- 34 files changed, 539 insertions(+), 453 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-codegen/src/main/java/org/apache/qpid/server/protocol/v1_0/CompositeTypeConstructorGenerator.java ---------------------------------------------------------------------- diff --git a/broker-codegen/src/main/java/org/apache/qpid/server/protocol/v1_0/CompositeTypeConstructorGenerator.java b/broker-codegen/src/main/java/org/apache/qpid/server/protocol/v1_0/CompositeTypeConstructorGenerator.java index 47308c8..2d76f5a 100644 --- a/broker-codegen/src/main/java/org/apache/qpid/server/protocol/v1_0/CompositeTypeConstructorGenerator.java +++ b/broker-codegen/src/main/java/org/apache/qpid/server/protocol/v1_0/CompositeTypeConstructorGenerator.java @@ -347,7 +347,7 @@ public class CompositeTypeConstructorGenerator extends AbstractProcessor { pw.println(indent + "if (" + fieldName + " != null)"); pw.println(indent + "{"); - indent += " "; + indent = " " + indent; } f.accept(indent); if (wrap) http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/LinkKeyEntryBinding.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/LinkKeyEntryBinding.java b/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/LinkKeyEntryBinding.java index 16ba8a9..ee49b48 100644 --- a/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/LinkKeyEntryBinding.java +++ b/broker-plugins/amqp-1-0-bdb-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/bdb/LinkKeyEntryBinding.java @@ -26,6 +26,7 @@ import com.sleepycat.bind.tuple.TupleOutput; import org.apache.qpid.server.protocol.v1_0.LinkKey; import org.apache.qpid.server.protocol.v1_0.type.transport.Role; +import org.apache.qpid.server.store.StoreException; public class LinkKeyEntryBinding extends TupleBinding<LinkKey> { @@ -41,7 +42,15 @@ public class LinkKeyEntryBinding extends TupleBinding<LinkKey> { String remoteContainerId = input.readString(); String linkName = input.readString(); - Role role = Role.valueOf(input.readBoolean()); + Role role = null; + try + { + role = Role.valueOf(input.readBoolean()); + } + catch (IllegalArgumentException e) + { + throw new StoreException("Cannot load link from store", e); + } final String remoteContainerId1 = remoteContainerId; final String linkName1 = linkName; http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-jdbc-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/jdbc/JDBCLinkStore.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-jdbc-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/jdbc/JDBCLinkStore.java b/broker-plugins/amqp-1-0-jdbc-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/jdbc/JDBCLinkStore.java index 2539d9f..94de03c 100644 --- a/broker-plugins/amqp-1-0-jdbc-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/jdbc/JDBCLinkStore.java +++ b/broker-plugins/amqp-1-0-jdbc-store/src/main/java/org/apache/qpid/server/protocol/v1_0/store/jdbc/JDBCLinkStore.java @@ -345,6 +345,10 @@ public class JDBCLinkStore extends AbstractLinkStore links.add(new LinkDefinitionImpl<>(remoteContainerId, linkName, role, source, target)); } } + catch (IllegalArgumentException e) + { + throw new StoreException("Cannot load links from store", e); + } return links; } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java index 344affb..1a91f95 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/AMQPConnection_1_0Impl.java @@ -57,6 +57,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.qpid.server.bytebuffer.QpidByteBuffer; +import org.apache.qpid.server.bytebuffer.QpidByteBufferUtils; import org.apache.qpid.server.common.ServerPropertyNames; import org.apache.qpid.server.configuration.CommonProperties; import org.apache.qpid.server.logging.messages.ConnectionMessages; @@ -71,7 +72,6 @@ import org.apache.qpid.server.protocol.ConnectionClosingTicker; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; import org.apache.qpid.server.protocol.v1_0.codec.FrameWriter; import org.apache.qpid.server.protocol.v1_0.codec.ProtocolHandler; -import org.apache.qpid.server.bytebuffer.QpidByteBufferUtils; import org.apache.qpid.server.protocol.v1_0.codec.SectionDecoderRegistry; import org.apache.qpid.server.protocol.v1_0.codec.ValueHandler; import org.apache.qpid.server.protocol.v1_0.codec.ValueWriter; @@ -848,7 +848,16 @@ public class AMQPConnection_1_0Impl extends AbstractAMQPConnection<AMQPConnectio { if (_remoteProperties != null && _remoteProperties.containsKey(SOLE_CONNECTION_ENFORCEMENT_POLICY)) { - _soleConnectionEnforcementPolicy = SoleConnectionEnforcementPolicy.valueOf(_remoteProperties.get(SOLE_CONNECTION_ENFORCEMENT_POLICY)); + try + { + _soleConnectionEnforcementPolicy = SoleConnectionEnforcementPolicy.valueOf(_remoteProperties.get( + SOLE_CONNECTION_ENFORCEMENT_POLICY)); + } + catch (IllegalArgumentException e) + { + closeConnection(AmqpError.INVALID_FIELD, e.getMessage()); + return; + } } else { http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/DeserializationFactories.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/DeserializationFactories.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/DeserializationFactories.java index f76edf4..b8b00a1 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/DeserializationFactories.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/DeserializationFactories.java @@ -42,177 +42,169 @@ public class DeserializationFactories @SuppressWarnings("unused") public static Map<Symbol, Object> convertToNodeProperties(final Object value) throws AmqpErrorException { - if (value != null) + if (!(value instanceof Map)) { - if (!(value instanceof Map)) + throw new AmqpErrorException(AmqpError.DECODE_ERROR, + String.format("Cannot construct 'node-properties' from type '%s'", + value == null ? null : value.getClass().getSimpleName())); + } + Map<Symbol, Object> nodeProperties = new LinkedHashMap<>(); + Map<?, ?> map = (Map<?, ?>) value; + for (Map.Entry<?, ?> entry : map.entrySet()) + { + Object key = entry.getKey(); + if (!(key instanceof Symbol)) { throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("Cannot construct 'node-properties' from type '%s'", - value.getClass().getSimpleName())); + String.format( + "'node-properties' must have only keys of type 'symbol' but got '%s'", + key.getClass().getSimpleName())); } - Map<Symbol, Object> nodeProperties = new LinkedHashMap<>(); - Map<?, ?> map = (Map<?, ?>) value; - for (Map.Entry<?,?> entry : map.entrySet()) + if (Session_1_0.LIFETIME_POLICY.equals(key)) { - Object key = entry.getKey(); - if (!(key instanceof Symbol)) + final Object lifetimePolicy = entry.getValue(); + if (!(lifetimePolicy instanceof LifetimePolicy)) { + String typeName = lifetimePolicy == null ? null : lifetimePolicy.getClass().getSimpleName(); throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("'node-properties' must have only keys of type 'symbol' but got '%s'", - key.getClass().getSimpleName())); + String.format("Cannot construct 'lifetime-policy' from type '%s'", + typeName)); } - if (Session_1_0.LIFETIME_POLICY.equals(key)) + nodeProperties.put((Symbol) key, lifetimePolicy); + } + else if (Symbol.valueOf("supported-dist-modes").equals(key)) + { + final Object distributionMode = entry.getValue(); + final DistributionMode[] converted; + if (distributionMode == null) { - final Object lifetimePolicy = entry.getValue(); - if (!(lifetimePolicy instanceof LifetimePolicy)) - { - String typeName = lifetimePolicy == null ? null : lifetimePolicy.getClass().getSimpleName(); - throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("Cannot construct 'lifetime-policy' from type '%s'", - typeName)); - } - nodeProperties.put((Symbol) key, lifetimePolicy); + converted = null; } - else if (Symbol.valueOf("supported-dist-modes").equals(key)) + else if (distributionMode.getClass().isArray()) { - final Object distributionMode = entry.getValue(); - final DistributionMode[] converted; - if (distributionMode == null) + converted = new DistributionMode[Array.getLength(distributionMode)]; + for (int i = 0; i < converted.length; ++i) { - converted = null; - - } - else if (distributionMode.getClass().isArray()) - { - converted = new DistributionMode[Array.getLength(distributionMode)]; - for (int i = 0; i < converted.length; ++i) + final Object item = Array.get(distributionMode, i); + if (item == null) { - final Object item = Array.get(distributionMode, i); - if (item == null) - { - throw new AmqpErrorException(AmqpError.DECODE_ERROR, - "'null' not allowed in 'supported-distribution-modes'"); - } - converted[i] = convertToDistributionMode(item); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, + "'null' not allowed in 'supported-distribution-modes'"); } + converted[i] = convertToDistributionMode(item); } - else - { - converted = new DistributionMode[] {convertToDistributionMode(distributionMode)}; - } - nodeProperties.put((Symbol) key, converted); } else { - nodeProperties.put((Symbol) key, entry.getValue()); + converted = new DistributionMode[]{convertToDistributionMode(distributionMode)}; } + nodeProperties.put((Symbol) key, converted); + } + else + { + nodeProperties.put((Symbol) key, entry.getValue()); } - return nodeProperties; - } - else - { - return null; } + return nodeProperties; } @SuppressWarnings("unused") public static DistributionMode convertToDistributionMode(final Object value) throws AmqpErrorException { - DistributionMode distributionMode = null; - if (value != null) + if (value instanceof DistributionMode) { - if (value instanceof DistributionMode) - { - distributionMode = (DistributionMode) value; - } - else if (value instanceof Symbol) + return (DistributionMode) value; + } + else if (value instanceof Symbol) + { + try { - distributionMode = StdDistMode.valueOf(value); - if (distributionMode == null) - { - distributionMode = new UnknownDistributionMode((Symbol) value); - } + return StdDistMode.valueOf(value); } - else + catch (IllegalArgumentException e) { - throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("Cannot construct 'distribution-mode' from type '%s'", - value.getClass().getSimpleName())); + return new UnknownDistributionMode((Symbol) value); } } - return distributionMode; + + final String message = String.format("Cannot construct 'distribution-mode' from type '%s'", + value == null ? null : value.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, message); } @SuppressWarnings("unused") public static TxnCapability convertToTxnCapability(final Object value) throws AmqpErrorException { - TxnCapability capability = null; - if (value != null) + if (value instanceof TxnCapability) { - if (value instanceof TxnCapability) + return (TxnCapability) value; + } + else if (value instanceof Symbol) + { + try { - capability = (TxnCapability) value; + return org.apache.qpid.server.protocol.v1_0.type.transaction.TxnCapability.valueOf(value); } - else if (value instanceof Symbol) + catch (IllegalArgumentException e) { - capability = org.apache.qpid.server.protocol.v1_0.type.transaction.TxnCapability.valueOf(value); - if (capability == null) - { - capability = new UnknownTxnCapability((Symbol) value); - } - } - else - { - throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("Cannot construct 'txn-capability' from type '%s'", - value.getClass().getSimpleName())); + return new UnknownTxnCapability((Symbol) value); } } - return capability; + + final String message = String.format("Cannot construct 'txn-capability' from type '%s'", + value == null ? null : value.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, message); } @SuppressWarnings("unsued") public static ErrorCondition convertToErrorCondition(final Object value) throws AmqpErrorException { - ErrorCondition condition = null; - if (value != null) + if (value instanceof ErrorCondition) + { + return (ErrorCondition) value; + } + else if (value instanceof Symbol) { - if (value instanceof ErrorCondition) + try { - condition = (ErrorCondition) value; + return AmqpError.valueOf(value); } - else if (value instanceof Symbol) + catch (IllegalArgumentException e) { - condition = AmqpError.valueOf(value); - if (condition == null) + try + { + return ConnectionError.valueOf(value); + } + catch (IllegalArgumentException e1) { - condition = ConnectionError.valueOf(value); - if (condition == null) + try { - condition = SessionError.valueOf(value); - if (condition == null) + return SessionError.valueOf(value); + } + catch (IllegalArgumentException e2) + { + try + { + return LinkError.valueOf(value); + } + catch (IllegalArgumentException e3) { - condition = LinkError.valueOf(value); - if (condition == null) + try { - condition = TransactionErrors.valueOf(value); - if (condition == null) - { - condition = new UnknownErrorCondition((Symbol) value); - } + return TransactionErrors.valueOf(value); + } + catch (IllegalArgumentException e4) + { + return new UnknownErrorCondition((Symbol) value); } } } } } - else - { - throw new AmqpErrorException(AmqpError.DECODE_ERROR, - String.format("Cannot construct 'error-condition' from type '%s'", - value.getClass().getSimpleName())); - } } - return condition; + final String message = String.format("Cannot construct 'error-condition' from type '%s'", + value == null ? null : value.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, message); } private static final class UnknownErrorCondition implements ErrorCondition http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java index b82b132..2eb919f 100755 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/MessageMetaData_1_0.java @@ -653,8 +653,6 @@ public class MessageMetaData_1_0 implements StorableMessageMetaData if (_decodedUserId.get() == null) { Binary encodededUserId = _propertiesSection.getValue().getUserId(); - // TODO the specification does not state the encoding of the binary. - // Trying to convert to UTF-8 is guaranteed not to throw an exception. _decodedUserId.set(new String(encodededUserId.getArray(), StandardCharsets.UTF_8)); } return _decodedUserId.get(); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLinkEndpoint.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLinkEndpoint.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLinkEndpoint.java index fe3a629..93f19cb 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLinkEndpoint.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/SendingLinkEndpoint.java @@ -718,7 +718,7 @@ public class SendingLinkEndpoint extends AbstractLinkEndpoint<Source, Target> } } - // TODO: Handle rejected and modified outcome + // TODO: QPID-7845: Handle rejected and modified outcome remoteUnsettled.remove(deliveryTag); _resumeAcceptedTransfers.add(deliveryTag); @@ -727,7 +727,7 @@ public class SendingLinkEndpoint extends AbstractLinkEndpoint<Source, Target> { _resumeFullTransfers.add(queueEntry); - // TODO: exists in receivers map, but not yet got an outcome ... should resend with resume = true + // TODO:PID-7845: exists in receivers map, but not yet got an outcome ... should resend with resume = true } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java index 46718fb..77c2714 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/Session_1_0.java @@ -1381,7 +1381,7 @@ public class Session_1_0 extends AbstractAMQPSession<Session_1_0, ConsumerTarget } else { - // TODO - link stealing??? + // TODO - close connection or session with internal error } } }); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java index ea4b8b8..bb9fa92 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/StandardReceivingLinkEndpoint.java @@ -144,7 +144,7 @@ public class StandardReceivingLinkEndpoint extends AbstractReceivingLinkEndpoint } else { - // TODO: create message ? + // TODO: QPID-7845: create message ? } } else http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ProtocolHandler.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ProtocolHandler.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ProtocolHandler.java index ff7849e..d087503 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ProtocolHandler.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/codec/ProtocolHandler.java @@ -24,7 +24,7 @@ import org.apache.qpid.server.bytebuffer.QpidByteBuffer; public interface ProtocolHandler { - // TODO rv is unused + ProtocolHandler parse(QpidByteBuffer in); boolean isDone(); http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicy.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicy.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicy.java index 86ceffb..8acaeae 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicy.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionDetectionPolicy.java @@ -45,20 +45,23 @@ public class SoleConnectionDetectionPolicy implements RestrictedType<UnsignedInt public static SoleConnectionDetectionPolicy valueOf(Object obj) { - UnsignedInteger val = (UnsignedInteger) obj; - - if (STRONG._val.equals(val)) + if (obj instanceof UnsignedInteger) { - return STRONG; - } + UnsignedInteger val = (UnsignedInteger) obj; - if (WEAK._val.equals(val)) - { - return WEAK; + if (STRONG._val.equals(val)) + { + return STRONG; + } + + if (WEAK._val.equals(val)) + { + return WEAK; + } } - throw new IllegalArgumentException(String.format( - "SoleConnectionDetectionPolicy must be either 0 or 1. Got '%s'", obj)); + final String message = String.format("Cannot convert '%s' into 'sole-connection-detection-policy'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicy.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicy.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicy.java index 8a41986..35055ba 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicy.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/extensions/soleconn/SoleConnectionEnforcementPolicy.java @@ -45,20 +45,23 @@ public class SoleConnectionEnforcementPolicy implements RestrictedType<UnsignedI public static SoleConnectionEnforcementPolicy valueOf(Object obj) { - UnsignedInteger val = (UnsignedInteger) obj; - - if (REFUSE_CONNECTION._val.equals(val)) + if (obj instanceof UnsignedInteger) { - return REFUSE_CONNECTION; - } + UnsignedInteger val = (UnsignedInteger) obj; - if (CLOSE_EXISTING._val.equals(val)) - { - return CLOSE_EXISTING; + if (REFUSE_CONNECTION._val.equals(val)) + { + return REFUSE_CONNECTION; + } + + if (CLOSE_EXISTING._val.equals(val)) + { + return CLOSE_EXISTING; + } } - throw new IllegalArgumentException(String.format( - "SoleConnectionEnforcementPolicy must be either 0 or 1. Got '%s'", obj)); + final String message = String.format("Cannot convert '%s' into 'sole-connection-enforcement-policy'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java index 3f0630e..e770f95 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/StdDistMode.java @@ -68,18 +68,22 @@ public class StdDistMode implements DistributionMode, RestrictedType<Symbol> public static StdDistMode valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (MOVE._val.equals(val)) + if (obj instanceof Symbol) { - return MOVE; - } + Symbol val = (Symbol) obj; - if (COPY._val.equals(val)) - { - return COPY; + if (MOVE._val.equals(val)) + { + return MOVE; + } + + if (COPY._val.equals(val)) + { + return COPY; + } } - return null; + final String message = String.format("Cannot convert '%s' into 'std-dist-mode'", obj); + throw new IllegalArgumentException(message); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java index 5b03e06..38466ed 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusDurability.java @@ -74,25 +74,27 @@ public class TerminusDurability implements RestrictedType<UnsignedInteger> public static TerminusDurability valueOf(Object obj) { - UnsignedInteger val = (UnsignedInteger) obj; - - if (NONE._val.equals(val)) - { - return NONE; - } - - if (CONFIGURATION._val.equals(val)) + if (obj instanceof UnsignedInteger) { - return CONFIGURATION; + UnsignedInteger val = (UnsignedInteger) obj; + + if (NONE._val.equals(val)) + { + return NONE; + } + + if (CONFIGURATION._val.equals(val)) + { + return CONFIGURATION; + } + + if (UNSETTLED_STATE._val.equals(val)) + { + return UNSETTLED_STATE; + } } - - if (UNSETTLED_STATE._val.equals(val)) - { - return UNSETTLED_STATE; - } - - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'terminus-durability'", obj); + throw new IllegalArgumentException(message); } public static TerminusDurability min(TerminusDurability durabilityA, TerminusDurability durabilityB) http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java index 735eac8..4db2f32 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/TerminusExpiryPolicy.java @@ -83,29 +83,32 @@ public class TerminusExpiryPolicy implements RestrictedType<Symbol> public static TerminusExpiryPolicy valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (LINK_DETACH._val.equals(val)) - { - return LINK_DETACH; - } - - if (SESSION_END._val.equals(val)) - { - return SESSION_END; - } - - if (CONNECTION_CLOSE._val.equals(val)) - { - return CONNECTION_CLOSE; - } - - if (NEVER._val.equals(val)) + if (obj instanceof Symbol) { - return NEVER; + Symbol val = (Symbol) obj; + + if (LINK_DETACH._val.equals(val)) + { + return LINK_DETACH; + } + + if (SESSION_END._val.equals(val)) + { + return SESSION_END; + } + + if (CONNECTION_CLOSE._val.equals(val)) + { + return CONNECTION_CLOSE; + } + + if (NEVER._val.equals(val)) + { + return NEVER; + } } - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'terminus-expiry-policy'", obj); + throw new IllegalArgumentException(message); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceConstructor.java index cd7a31d..bbc999e 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/AmqpSequenceConstructor.java @@ -27,9 +27,11 @@ import java.util.List; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.AmqpSequence; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class AmqpSequenceConstructor extends AbstractDescribedTypeConstructor<AmqpSequence> { @@ -50,17 +52,17 @@ public class AmqpSequenceConstructor extends AbstractDescribedTypeConstructor<Am @Override - public AmqpSequence construct(Object underlying) + public AmqpSequence construct(Object underlying) throws AmqpErrorException { - if(underlying instanceof List) { return new AmqpSequence((List)underlying); } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'amqp-sequence' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesConstructor.java index 1c8cccb..e68b7fa 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ApplicationPropertiesConstructor.java @@ -27,9 +27,11 @@ import java.util.Map; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.ApplicationProperties; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class ApplicationPropertiesConstructor extends AbstractDescribedTypeConstructor<ApplicationProperties> { @@ -50,7 +52,7 @@ public class ApplicationPropertiesConstructor extends AbstractDescribedTypeConst @Override - public ApplicationProperties construct(Object underlying) + public ApplicationProperties construct(Object underlying) throws AmqpErrorException { if(underlying instanceof Map) @@ -59,8 +61,9 @@ public class ApplicationPropertiesConstructor extends AbstractDescribedTypeConst } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'application-properties' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataConstructor.java index a7c2c60..a9eda5e 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DataConstructor.java @@ -25,10 +25,12 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging.codec; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Binary; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.Data; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class DataConstructor extends AbstractDescribedTypeConstructor<Data> { @@ -49,7 +51,7 @@ public class DataConstructor extends AbstractDescribedTypeConstructor<Data> @Override - public Data construct(Object underlying) + public Data construct(Object underlying) throws AmqpErrorException { if(underlying instanceof Binary) @@ -58,8 +60,9 @@ public class DataConstructor extends AbstractDescribedTypeConstructor<Data> } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'data' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsConstructor.java index 70c92b3..997f43a 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/DeliveryAnnotationsConstructor.java @@ -27,9 +27,11 @@ import java.util.Map; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.DeliveryAnnotations; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class DeliveryAnnotationsConstructor extends AbstractDescribedTypeConstructor<DeliveryAnnotations> { @@ -50,7 +52,7 @@ public class DeliveryAnnotationsConstructor extends AbstractDescribedTypeConstru @Override - public DeliveryAnnotations construct(Object underlying) + public DeliveryAnnotations construct(Object underlying) throws AmqpErrorException { if(underlying instanceof Map) @@ -59,8 +61,9 @@ public class DeliveryAnnotationsConstructor extends AbstractDescribedTypeConstru } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'delivery-annotations' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ExactSubjectFilterConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ExactSubjectFilterConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ExactSubjectFilterConstructor.java index 063e61b..ddf220f 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ExactSubjectFilterConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/ExactSubjectFilterConstructor.java @@ -25,8 +25,10 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging.codec; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.messaging.ExactSubjectFilter; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class ExactSubjectFilterConstructor extends AbstractDescribedTypeConstructor<ExactSubjectFilter> { @@ -47,7 +49,7 @@ public class ExactSubjectFilterConstructor extends AbstractDescribedTypeConstruc @Override - public ExactSubjectFilter construct(Object underlying) + public ExactSubjectFilter construct(Object underlying) throws AmqpErrorException { if(underlying instanceof String) @@ -56,8 +58,9 @@ public class ExactSubjectFilterConstructor extends AbstractDescribedTypeConstruc } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'apache.org:legacy-amqp-direct-binding' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterConstructor.java index b345866..523138f 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/FooterConstructor.java @@ -27,9 +27,11 @@ import java.util.Map; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.Footer; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class FooterConstructor extends AbstractDescribedTypeConstructor<Footer> { @@ -50,7 +52,7 @@ public class FooterConstructor extends AbstractDescribedTypeConstructor<Footer> @Override - public Footer construct(Object underlying) + public Footer construct(Object underlying) throws AmqpErrorException { if(underlying instanceof Map) @@ -59,8 +61,9 @@ public class FooterConstructor extends AbstractDescribedTypeConstructor<Footer> } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'footer' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/JMSSelectorFilterConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/JMSSelectorFilterConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/JMSSelectorFilterConstructor.java index a232070..a5a1227 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/JMSSelectorFilterConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/JMSSelectorFilterConstructor.java @@ -25,9 +25,11 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging.codec; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.JMSSelectorFilter; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class JMSSelectorFilterConstructor extends AbstractDescribedTypeConstructor<JMSSelectorFilter> { @@ -49,7 +51,7 @@ public class JMSSelectorFilterConstructor extends AbstractDescribedTypeConstruct @Override - public JMSSelectorFilter construct(Object underlying) + public JMSSelectorFilter construct(Object underlying) throws AmqpErrorException { if(underlying instanceof String) @@ -58,8 +60,9 @@ public class JMSSelectorFilterConstructor extends AbstractDescribedTypeConstruct } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'apache.org:jms-selector-filter' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MatchingSubjectFilterConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MatchingSubjectFilterConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MatchingSubjectFilterConstructor.java index a66fd47..9515596 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MatchingSubjectFilterConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MatchingSubjectFilterConstructor.java @@ -25,9 +25,11 @@ package org.apache.qpid.server.protocol.v1_0.type.messaging.codec; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.MatchingSubjectFilter; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class MatchingSubjectFilterConstructor extends AbstractDescribedTypeConstructor<MatchingSubjectFilter> { @@ -48,7 +50,7 @@ public class MatchingSubjectFilterConstructor extends AbstractDescribedTypeConst @Override - public MatchingSubjectFilter construct(Object underlying) + public MatchingSubjectFilter construct(Object underlying) throws AmqpErrorException { if(underlying instanceof String) @@ -57,8 +59,9 @@ public class MatchingSubjectFilterConstructor extends AbstractDescribedTypeConst } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'apache.org:legacy-amqp-topic-binding' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsConstructor.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsConstructor.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsConstructor.java index 956b6fd..d7f43ed 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsConstructor.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/messaging/codec/MessageAnnotationsConstructor.java @@ -27,9 +27,11 @@ import java.util.Map; import org.apache.qpid.server.protocol.v1_0.codec.AbstractDescribedTypeConstructor; import org.apache.qpid.server.protocol.v1_0.codec.DescribedTypeConstructorRegistry; +import org.apache.qpid.server.protocol.v1_0.type.AmqpErrorException; import org.apache.qpid.server.protocol.v1_0.type.Symbol; import org.apache.qpid.server.protocol.v1_0.type.UnsignedLong; import org.apache.qpid.server.protocol.v1_0.type.messaging.MessageAnnotations; +import org.apache.qpid.server.protocol.v1_0.type.transport.AmqpError; public class MessageAnnotationsConstructor extends AbstractDescribedTypeConstructor<MessageAnnotations> { @@ -50,7 +52,7 @@ public class MessageAnnotationsConstructor extends AbstractDescribedTypeConstruc @Override - public MessageAnnotations construct(Object underlying) + public MessageAnnotations construct(Object underlying) throws AmqpErrorException { if(underlying instanceof Map) @@ -59,8 +61,9 @@ public class MessageAnnotationsConstructor extends AbstractDescribedTypeConstruc } else { - // TODO - error - return null; + final String msg = String.format("Cannot decode 'message-annotations' from '%s'", + underlying == null ? null : underlying.getClass().getSimpleName()); + throw new AmqpErrorException(AmqpError.DECODE_ERROR, msg); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/security/SaslCode.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/security/SaslCode.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/security/SaslCode.java index ec58ef4..5329f8d 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/security/SaslCode.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/security/SaslCode.java @@ -88,34 +88,37 @@ public class SaslCode implements RestrictedType<UnsignedByte> public static SaslCode valueOf(Object obj) { - UnsignedByte val = (UnsignedByte) obj; - - if (OK._val.equals(val)) - { - return OK; - } - - if (AUTH._val.equals(val)) - { - return AUTH; - } - - if (SYS._val.equals(val)) - { - return SYS; - } - - if (SYS_PERM._val.equals(val)) - { - return SYS_PERM; - } - - if (SYS_TEMP._val.equals(val)) + if (obj instanceof UnsignedByte) { - return SYS_TEMP; + UnsignedByte val = (UnsignedByte) obj; + + if (OK._val.equals(val)) + { + return OK; + } + + if (AUTH._val.equals(val)) + { + return AUTH; + } + + if (SYS._val.equals(val)) + { + return SYS; + } + + if (SYS_PERM._val.equals(val)) + { + return SYS_PERM; + } + + if (SYS_TEMP._val.equals(val)) + { + return SYS_TEMP; + } } - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'sasl-code'", obj); + throw new IllegalArgumentException(message); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TransactionErrors.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TransactionErrors.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TransactionErrors.java index 5297f8f..1995eff 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TransactionErrors.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TransactionErrors.java @@ -75,23 +75,27 @@ public class TransactionErrors implements ErrorCondition, RestrictedType<Symbol> public static TransactionErrors valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (UNKNOWN_ID._val.equals(val)) - { - return UNKNOWN_ID; - } - - if (TRANSACTION_ROLLBACK._val.equals(val)) - { - return TRANSACTION_ROLLBACK; - } - - if (TRANSACTION_TIMEOUT._val.equals(val)) + if (obj instanceof Symbol) { - return TRANSACTION_TIMEOUT; + Symbol val = (Symbol) obj; + + if (UNKNOWN_ID._val.equals(val)) + { + return UNKNOWN_ID; + } + + if (TRANSACTION_ROLLBACK._val.equals(val)) + { + return TRANSACTION_ROLLBACK; + } + + if (TRANSACTION_TIMEOUT._val.equals(val)) + { + return TRANSACTION_TIMEOUT; + } } - return null; + final String message = String.format("Cannot convert '%s' into 'transaction-error'", obj); + throw new IllegalArgumentException(message); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TxnCapability.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TxnCapability.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TxnCapability.java index c00dfcb..6de3933 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TxnCapability.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transaction/TxnCapability.java @@ -91,34 +91,37 @@ public class TxnCapability implements org.apache.qpid.server.protocol.v1_0.type. public static TxnCapability valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (LOCAL_TXN._val.equals(val)) - { - return LOCAL_TXN; - } - - if (DISTRIBUTED_TXN._val.equals(val)) - { - return DISTRIBUTED_TXN; - } - - if (PROMOTABLE_TXN._val.equals(val)) - { - return PROMOTABLE_TXN; - } - - if (MULTI_TXNS_PER_SSN._val.equals(val)) - { - return MULTI_TXNS_PER_SSN; - } - - if (MULTI_SSNS_PER_TXN._val.equals(val)) + if (obj instanceof Symbol) { - return MULTI_SSNS_PER_TXN; + Symbol val = (Symbol) obj; + + if (LOCAL_TXN._val.equals(val)) + { + return LOCAL_TXN; + } + + if (DISTRIBUTED_TXN._val.equals(val)) + { + return DISTRIBUTED_TXN; + } + + if (PROMOTABLE_TXN._val.equals(val)) + { + return PROMOTABLE_TXN; + } + + if (MULTI_TXNS_PER_SSN._val.equals(val)) + { + return MULTI_TXNS_PER_SSN; + } + + if (MULTI_SSNS_PER_TXN._val.equals(val)) + { + return MULTI_SSNS_PER_TXN; + } } - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'txn-capability'", obj); + throw new IllegalArgumentException(message); } } http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/AmqpError.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/AmqpError.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/AmqpError.java index 88c6202..df6ecea 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/AmqpError.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/AmqpError.java @@ -54,74 +54,78 @@ public class AmqpError implements ErrorCondition, RestrictedType<Symbol> public static AmqpError valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (INTERNAL_ERROR._val.equals(val)) - { - return INTERNAL_ERROR; - } - - if (NOT_FOUND._val.equals(val)) - { - return NOT_FOUND; - } - - if (UNAUTHORIZED_ACCESS._val.equals(val)) - { - return UNAUTHORIZED_ACCESS; - } - - if (DECODE_ERROR._val.equals(val)) - { - return DECODE_ERROR; - } - - if (RESOURCE_LIMIT_EXCEEDED._val.equals(val)) - { - return RESOURCE_LIMIT_EXCEEDED; - } - - if (NOT_ALLOWED._val.equals(val)) - { - return NOT_ALLOWED; - } - - if (INVALID_FIELD._val.equals(val)) - { - return INVALID_FIELD; - } - - if (NOT_IMPLEMENTED._val.equals(val)) - { - return NOT_IMPLEMENTED; - } - - if (RESOURCE_LOCKED._val.equals(val)) - { - return RESOURCE_LOCKED; - } - - if (PRECONDITION_FAILED._val.equals(val)) - { - return PRECONDITION_FAILED; - } - - if (RESOURCE_DELETED._val.equals(val)) - { - return RESOURCE_DELETED; - } - - if (ILLEGAL_STATE._val.equals(val)) - { - return ILLEGAL_STATE; - } - - if (FRAME_SIZE_TOO_SMALL._val.equals(val)) - { - return FRAME_SIZE_TOO_SMALL; - } - - return null; + if (obj instanceof Symbol) + { + Symbol val = (Symbol) obj; + + if (INTERNAL_ERROR._val.equals(val)) + { + return INTERNAL_ERROR; + } + + if (NOT_FOUND._val.equals(val)) + { + return NOT_FOUND; + } + + if (UNAUTHORIZED_ACCESS._val.equals(val)) + { + return UNAUTHORIZED_ACCESS; + } + + if (DECODE_ERROR._val.equals(val)) + { + return DECODE_ERROR; + } + + if (RESOURCE_LIMIT_EXCEEDED._val.equals(val)) + { + return RESOURCE_LIMIT_EXCEEDED; + } + + if (NOT_ALLOWED._val.equals(val)) + { + return NOT_ALLOWED; + } + + if (INVALID_FIELD._val.equals(val)) + { + return INVALID_FIELD; + } + + if (NOT_IMPLEMENTED._val.equals(val)) + { + return NOT_IMPLEMENTED; + } + + if (RESOURCE_LOCKED._val.equals(val)) + { + return RESOURCE_LOCKED; + } + + if (PRECONDITION_FAILED._val.equals(val)) + { + return PRECONDITION_FAILED; + } + + if (RESOURCE_DELETED._val.equals(val)) + { + return RESOURCE_DELETED; + } + + if (ILLEGAL_STATE._val.equals(val)) + { + return ILLEGAL_STATE; + } + + if (FRAME_SIZE_TOO_SMALL._val.equals(val)) + { + return FRAME_SIZE_TOO_SMALL; + } + } + + final String message = String.format("Cannot convert '%s' into 'amqp-error'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ConnectionError.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ConnectionError.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ConnectionError.java index e1fe139..deb7d05 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ConnectionError.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ConnectionError.java @@ -47,29 +47,33 @@ public class ConnectionError implements ErrorCondition, RestrictedType<Symbol> public static ConnectionError valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (CONNECTION_FORCED._val.equals(val)) - { - return CONNECTION_FORCED; - } - - if (FRAMING_ERROR._val.equals(val)) - { - return FRAMING_ERROR; - } - - if (REDIRECT._val.equals(val)) - { - return REDIRECT; - } - - if (SOCKET_ERROR._val.equals(val)) + if (obj instanceof Symbol) { - return SOCKET_ERROR; + Symbol val = (Symbol) obj; + + if (CONNECTION_FORCED._val.equals(val)) + { + return CONNECTION_FORCED; + } + + if (FRAMING_ERROR._val.equals(val)) + { + return FRAMING_ERROR; + } + + if (REDIRECT._val.equals(val)) + { + return REDIRECT; + } + + if (SOCKET_ERROR._val.equals(val)) + { + return SOCKET_ERROR; + } } - return null; + final String message = String.format("Cannot convert '%s' into 'connection-error'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/LinkError.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/LinkError.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/LinkError.java index 99ec089..e90effe 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/LinkError.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/LinkError.java @@ -47,34 +47,38 @@ public class LinkError implements ErrorCondition, RestrictedType<Symbol> public static LinkError valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (DETACH_FORCED._val.equals(val)) - { - return DETACH_FORCED; - } - - if (TRANSFER_LIMIT_EXCEEDED._val.equals(val)) - { - return TRANSFER_LIMIT_EXCEEDED; - } - - if (MESSAGE_SIZE_EXCEEDED._val.equals(val)) - { - return MESSAGE_SIZE_EXCEEDED; - } - - if (REDIRECT._val.equals(val)) - { - return REDIRECT; - } - - if (STOLEN._val.equals(val)) + if (obj instanceof Symbol) { - return STOLEN; + Symbol val = (Symbol) obj; + + if (DETACH_FORCED._val.equals(val)) + { + return DETACH_FORCED; + } + + if (TRANSFER_LIMIT_EXCEEDED._val.equals(val)) + { + return TRANSFER_LIMIT_EXCEEDED; + } + + if (MESSAGE_SIZE_EXCEEDED._val.equals(val)) + { + return MESSAGE_SIZE_EXCEEDED; + } + + if (REDIRECT._val.equals(val)) + { + return REDIRECT; + } + + if (STOLEN._val.equals(val)) + { + return STOLEN; + } } - return null; + final String message = String.format("Cannot convert '%s' into 'link-error'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ReceiverSettleMode.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ReceiverSettleMode.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ReceiverSettleMode.java index 89a8fee..c8c0072 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ReceiverSettleMode.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/ReceiverSettleMode.java @@ -41,20 +41,22 @@ public class ReceiverSettleMode implements RestrictedType<UnsignedByte> public static ReceiverSettleMode valueOf(Object obj) { - UnsignedByte val = (UnsignedByte) obj; - - if (FIRST._val.equals(val)) - { - return FIRST; - } - - if (SECOND._val.equals(val)) + if (obj instanceof UnsignedByte) { - return SECOND; + UnsignedByte val = (UnsignedByte) obj; + if (FIRST._val.equals(val)) + { + return FIRST; + } + + if (SECOND._val.equals(val)) + { + return SECOND; + } } - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'receiver-settle-mode'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Role.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Role.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Role.java index c8d5619..d2ba4d9 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Role.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/Role.java @@ -40,20 +40,22 @@ public class Role implements RestrictedType<Boolean> public static Role valueOf(Object obj) { - boolean val = (Boolean) obj; - - if (SENDER._val == (val)) + if (obj instanceof Boolean) { - return SENDER; - } + boolean val = (Boolean) obj; - if (RECEIVER._val == (val)) - { - return RECEIVER; - } + if (SENDER._val == (val)) + { + return SENDER; + } - // TODO ERROR - return null; + if (RECEIVER._val == (val)) + { + return RECEIVER; + } + } + final String message = String.format("Cannot convert '%s' into 'role'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SenderSettleMode.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SenderSettleMode.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SenderSettleMode.java index 4ada342..9d9767f 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SenderSettleMode.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SenderSettleMode.java @@ -42,25 +42,28 @@ public class SenderSettleMode implements RestrictedType<UnsignedByte> public static SenderSettleMode valueOf(Object obj) { - UnsignedByte val = (UnsignedByte) obj; - - if (UNSETTLED._val.equals(val)) - { - return UNSETTLED; - } - - if (SETTLED._val.equals(val)) - { - return SETTLED; - } - - if (MIXED._val.equals(val)) + if (obj instanceof UnsignedByte) { - return MIXED; + UnsignedByte val = (UnsignedByte) obj; + + if (UNSETTLED._val.equals(val)) + { + return UNSETTLED; + } + + if (SETTLED._val.equals(val)) + { + return SETTLED; + } + + if (MIXED._val.equals(val)) + { + return MIXED; + } } - // TODO ERROR - return null; + final String message = String.format("Cannot convert '%s' into 'sender-settle-mode'", obj); + throw new IllegalArgumentException(message); } @Override http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/a6a02baa/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SessionError.java ---------------------------------------------------------------------- diff --git a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SessionError.java b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SessionError.java index 190bb3a..f332f46 100644 --- a/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SessionError.java +++ b/broker-plugins/amqp-1-0-protocol/src/main/java/org/apache/qpid/server/protocol/v1_0/type/transport/SessionError.java @@ -46,29 +46,33 @@ public class SessionError implements ErrorCondition, RestrictedType<Symbol> public static SessionError valueOf(Object obj) { - Symbol val = (Symbol) obj; - - if (WINDOW_VIOLATION._val.equals(val)) - { - return WINDOW_VIOLATION; - } - - if (ERRANT_LINK._val.equals(val)) - { - return ERRANT_LINK; - } - - if (HANDLE_IN_USE._val.equals(val)) - { - return HANDLE_IN_USE; - } - - if (UNATTACHED_HANDLE._val.equals(val)) + if (obj instanceof Symbol) { - return UNATTACHED_HANDLE; + Symbol val = (Symbol) obj; + + if (WINDOW_VIOLATION._val.equals(val)) + { + return WINDOW_VIOLATION; + } + + if (ERRANT_LINK._val.equals(val)) + { + return ERRANT_LINK; + } + + if (HANDLE_IN_USE._val.equals(val)) + { + return HANDLE_IN_USE; + } + + if (UNATTACHED_HANDLE._val.equals(val)) + { + return UNATTACHED_HANDLE; + } } - return null; + final String message = String.format("Cannot convert '%s' into 'session-error'", obj); + throw new IllegalArgumentException(message); } @Override --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@qpid.apache.org For additional commands, e-mail: commits-h...@qpid.apache.org