You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by or...@apache.org on 2017/12/13 17:46:05 UTC
qpid-broker-j git commit: QPID-8060: [Broker-J] [AMQP 0-8..0-9-1]
Address review comments
Repository: qpid-broker-j
Updated Branches:
refs/heads/master 7b4e3e8d5 -> 6e839776e
QPID-8060: [Broker-J] [AMQP 0-8..0-9-1] Address review comments
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/6e839776
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/6e839776
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/6e839776
Branch: refs/heads/master
Commit: 6e839776eaaa83be78d09460c2be98f04de8abb5
Parents: 7b4e3e8
Author: Alex Rudyy <or...@apache.org>
Authored: Wed Dec 13 17:17:41 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Wed Dec 13 17:45:58 2017 +0000
----------------------------------------------------------------------
.../qpid/server/exchange/AbstractExchange.java | 6 ++--
.../model/UnknownConfiguredObjectException.java | 13 ++------
.../apache/qpid/server/queue/AbstractQueue.java | 5 ++--
.../UnknownAlternateBindingException.java | 31 ++++++++++++++++++++
.../server/exchange/DirectExchangeTest.java | 4 +--
.../server/queue/AbstractQueueTestBase.java | 4 +--
.../protocol/v0_10/ServerSessionDelegate.java | 15 ++++++----
.../qpid/server/protocol/v0_8/AMQChannel.java | 21 +++++++------
8 files changed, 64 insertions(+), 35 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java b/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
index b3714e9..1c07178 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/exchange/AbstractExchange.java
@@ -71,7 +71,6 @@ import org.apache.qpid.server.model.PublishingLink;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.StateTransition;
-import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.protocol.LinkModel;
import org.apache.qpid.server.queue.CreatingLinkInfo;
import org.apache.qpid.server.security.SecurityToken;
@@ -85,6 +84,7 @@ import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException
import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
import org.apache.qpid.server.virtualhost.RequiredExchangeException;
import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
public abstract class AbstractExchange<T extends AbstractExchange<T>>
@@ -1055,9 +1055,9 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>>
_virtualHost.getAttainedMessageDestination(destinationName, mayCreate);
if (messageDestination == null)
{
- throw new UnknownConfiguredObjectException(String.format(
+ throw new UnknownAlternateBindingException(String.format(
"Cannot create alternate binding for '%s' : Alternate binding destination '%s' cannot be found.",
- getName(), destinationName), ConfiguredObject.class, destinationName);
+ getName(), destinationName));
}
else if (messageDestination == this)
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java b/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java
index f460df7..f35a68a 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/model/UnknownConfiguredObjectException.java
@@ -28,22 +28,13 @@ public class UnknownConfiguredObjectException extends IllegalArgumentException
private String _name;
private UUID _id;
- public UnknownConfiguredObjectException(String exceptionMessage,
- final Class<? extends ConfiguredObject> category,
- final String name)
+ public UnknownConfiguredObjectException(final Class<? extends ConfiguredObject> category, final String name)
{
- super(exceptionMessage);
+ super("Could not find object of category " + category.getSimpleName() + " with name '" + name + "'");
_category = category;
_name = name;
}
- public UnknownConfiguredObjectException(final Class<? extends ConfiguredObject> category, final String name)
- {
- this("Could not find object of category " + category.getSimpleName() + " with name '" + name + "'",
- category,
- name);
- }
-
public UnknownConfiguredObjectException(final Class<? extends ConfiguredObject> category, final UUID id)
{
super("Could not find object of category " + category.getSimpleName() + " with id " + id);
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
index 39584d6..ceb9610 100644
--- a/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
+++ b/broker-core/src/main/java/org/apache/qpid/server/queue/AbstractQueue.java
@@ -120,6 +120,7 @@ import org.apache.qpid.server.util.ServerScopedRuntimeException;
import org.apache.qpid.server.virtualhost.HouseKeepingTask;
import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException;
import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
public abstract class AbstractQueue<X extends AbstractQueue<X>>
@@ -3534,9 +3535,9 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
_virtualHost.getAttainedMessageDestination(destinationName, mayCreate);
if (messageDestination == null)
{
- throw new UnknownConfiguredObjectException(String.format(
+ throw new UnknownAlternateBindingException(String.format(
"Cannot create alternate binding for '%s' : Alternate binding destination '%s' cannot be found.",
- getName(), destinationName), ConfiguredObject.class, destinationName);
+ getName(), destinationName));
}
else if (messageDestination == this)
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownAlternateBindingException.java
----------------------------------------------------------------------
diff --git a/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownAlternateBindingException.java b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownAlternateBindingException.java
new file mode 100644
index 0000000..c3f88e6
--- /dev/null
+++ b/broker-core/src/main/java/org/apache/qpid/server/virtualhost/UnknownAlternateBindingException.java
@@ -0,0 +1,31 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.server.virtualhost;
+
+import org.apache.qpid.server.configuration.IllegalConfigurationException;
+
+public class UnknownAlternateBindingException extends IllegalConfigurationException
+{
+ public UnknownAlternateBindingException(final String message)
+ {
+ super(message);
+ }
+}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/test/java/org/apache/qpid/server/exchange/DirectExchangeTest.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/exchange/DirectExchangeTest.java b/broker-core/src/test/java/org/apache/qpid/server/exchange/DirectExchangeTest.java
index 310876f..653a0a2 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/exchange/DirectExchangeTest.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/exchange/DirectExchangeTest.java
@@ -39,11 +39,11 @@ import org.apache.qpid.server.model.BrokerTestHelper;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.store.TransactionLogResource;
import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException;
import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
import org.apache.qpid.test.utils.QpidTestCase;
public class DirectExchangeTest extends QpidTestCase
@@ -176,7 +176,7 @@ public class DirectExchangeTest extends QpidTestCase
_vhost.createChild(Exchange.class, attributes);
fail("Expected exception is not thrown");
}
- catch (UnknownConfiguredObjectException e)
+ catch (UnknownAlternateBindingException e)
{
// pass
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
----------------------------------------------------------------------
diff --git a/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java b/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
index 45222f5..e9ffcce 100644
--- a/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
+++ b/broker-core/src/test/java/org/apache/qpid/server/queue/AbstractQueueTestBase.java
@@ -67,7 +67,6 @@ import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.OverflowPolicy;
import org.apache.qpid.server.model.Queue;
import org.apache.qpid.server.model.QueueNotificationListener;
-import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.queue.AbstractQueue.QueueEntryFilter;
import org.apache.qpid.server.store.StoredMessage;
import org.apache.qpid.server.store.TransactionLogResource;
@@ -75,6 +74,7 @@ import org.apache.qpid.server.util.Action;
import org.apache.qpid.server.util.StateChangeListener;
import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException;
import org.apache.qpid.server.virtualhost.QueueManagingVirtualHost;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
import org.apache.qpid.test.utils.QpidTestCase;
abstract class AbstractQueueTestBase extends QpidTestCase
@@ -982,7 +982,7 @@ abstract class AbstractQueueTestBase extends QpidTestCase
_virtualHost.createChild(Queue.class, attributes);
fail("Expected exception is not thrown");
}
- catch (UnknownConfiguredObjectException e)
+ catch (UnknownAlternateBindingException e)
{
// pass
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
index ccaee39..5af1cef 100644
--- a/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
+++ b/broker-plugins/amqp-0-10-protocol/src/main/java/org/apache/qpid/server/protocol/v0_10/ServerSessionDelegate.java
@@ -62,7 +62,6 @@ import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.NoFactoryForTypeException;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.protocol.ErrorCodes;
import org.apache.qpid.server.protocol.v0_10.transport.*;
import org.apache.qpid.server.queue.QueueArgumentsConverter;
@@ -86,6 +85,7 @@ import org.apache.qpid.server.util.ServerScopedRuntimeException;
import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException;
import org.apache.qpid.server.virtualhost.RequiredExchangeException;
import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
import org.apache.qpid.server.virtualhost.VirtualHostUnavailableException;
public class ServerSessionDelegate extends MethodDelegate<ServerSession> implements ProtocolDelegate<ServerSession>
@@ -952,11 +952,11 @@ public class ServerSessionDelegate extends MethodDelegate<ServerSession> impleme
+ exchangeName + " which begins with reserved name or prefix.");
}
}
- catch(UnknownConfiguredObjectException e)
+ catch(UnknownAlternateBindingException e)
{
exception(session, method, ExecutionErrorCode.NOT_FOUND,
- "Unknown alternate exchange " + e.getName());
+ "Unknown alternate exchange " + alternateExchangeName);
}
catch(NoFactoryForTypeException e)
{
@@ -1541,11 +1541,9 @@ public class ServerSessionDelegate extends MethodDelegate<ServerSession> impleme
else
{
+ final String alternateExchangeName = method.getAlternateExchange();
try
{
-
- final String alternateExchangeName = method.getAlternateExchange();
-
final Map<String, Object> arguments = QueueArgumentsConverter.convertWireArgsToModel(queueName,
method.getArguments());
@@ -1603,6 +1601,11 @@ public class ServerSessionDelegate extends MethodDelegate<ServerSession> impleme
{
exception(session, method, ExecutionErrorCode.UNAUTHORIZED_ACCESS, e.getMessage());
}
+ catch (UnknownAlternateBindingException e)
+ {
+ exception(session, method, ExecutionErrorCode.NOT_FOUND,
+ "Unknown alternate exchange " + alternateExchangeName);
+ }
catch (IllegalArgumentException | IllegalConfigurationException e)
{
exception(session, method, ExecutionErrorCode.ILLEGAL_ARGUMENT, e.getMessage());
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/6e839776/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
----------------------------------------------------------------------
diff --git a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
index 07d0f91..d942abd 100644
--- a/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
+++ b/broker-plugins/amqp-0-8-protocol/src/main/java/org/apache/qpid/server/protocol/v0_8/AMQChannel.java
@@ -83,7 +83,6 @@ import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.NamedAddressSpace;
import org.apache.qpid.server.model.NoFactoryForTypeException;
import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.protocol.ErrorCodes;
import org.apache.qpid.server.protocol.ProtocolVersion;
import org.apache.qpid.server.protocol.v0_8.UnacknowledgedMessageMap.Visitor;
@@ -103,6 +102,7 @@ import org.apache.qpid.server.util.ServerScopedRuntimeException;
import org.apache.qpid.server.virtualhost.MessageDestinationIsAlternateException;
import org.apache.qpid.server.virtualhost.RequiredExchangeException;
import org.apache.qpid.server.virtualhost.ReservedExchangeNameException;
+import org.apache.qpid.server.virtualhost.UnknownAlternateBindingException;
public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0_8>
implements AsyncAutoCommitTransaction.FutureRecorder,
@@ -2642,6 +2642,7 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
{
String name = exchangeName.toString();
String typeString = type == null ? null : type.toString();
+ String alternateExchangeName = null;
try
{
@@ -2659,9 +2660,10 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
Object alternateExchange = attributes.remove(ALTERNATE_EXCHANGE);
if (alternateExchange != null)
{
- validateAlternateExchangeIsNotQueue(virtualHost, String.valueOf(alternateExchange));
+ alternateExchangeName = String.valueOf(alternateExchange);
+ validateAlternateExchangeIsNotQueue(virtualHost, alternateExchangeName);
attributes.put(Exchange.ALTERNATE_BINDING,
- Collections.singletonMap(AlternateBinding.DESTINATION, alternateExchange));
+ Collections.singletonMap(AlternateBinding.DESTINATION, alternateExchangeName));
}
exchange = virtualHost.createMessageDestination(Exchange.class, attributes);
@@ -2720,9 +2722,9 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
_connection.sendConnectionClose(ErrorCodes.ACCESS_REFUSED, e.getMessage(), getChannelId());
}
- catch (UnknownConfiguredObjectException e)
+ catch (UnknownAlternateBindingException e)
{
- final String message = String.format("Unknown alternate exchange '%s'", e.getName());
+ final String message = String.format("Unknown alternate exchange '%s'", alternateExchangeName);
_connection.sendConnectionClose(ErrorCodes.NOT_FOUND, message, getChannelId());
}
@@ -3000,7 +3002,7 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
}
else
{
-
+ String alternateExchangeName = null;
try
{
final String queueNameString = AMQShortString.toString(queueName);
@@ -3008,7 +3010,8 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
Object alternateExchange = wireArguments.get(ALTERNATE_EXCHANGE);
if (alternateExchange != null)
{
- validateAlternateExchangeIsNotQueue(virtualHost, String.valueOf(alternateExchange));
+ alternateExchangeName = String.valueOf(alternateExchange);
+ validateAlternateExchangeIsNotQueue(virtualHost, alternateExchangeName);
}
Map<String, Object> attributes =
@@ -3126,9 +3129,9 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
{
_connection.sendConnectionClose(ErrorCodes.ACCESS_REFUSED, e.getMessage(), getChannelId());
}
- catch (UnknownConfiguredObjectException e)
+ catch (UnknownAlternateBindingException e)
{
- final String message = String.format("Unknown alternate exchange: '%s'", e.getName());
+ final String message = String.format("Unknown alternate exchange: '%s'", alternateExchangeName);
_connection.sendConnectionClose(ErrorCodes.NOT_FOUND, message, getChannelId());
}
catch (IllegalArgumentException | IllegalConfigurationException e)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org