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/07 10:40:06 UTC
[1/2] qpid-broker-j git commit: QPID-8061: [Broker-J] [AMQP
0-8..0-9-1] Handle unknown alternate exchange on exchange declaration
Repository: qpid-broker-j
Updated Branches:
refs/heads/master 93c1e0b8d -> 268f3fb68
QPID-8061: [Broker-J] [AMQP 0-8..0-9-1] Handle unknown alternate exchange on exchange declaration
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/38c04f8c
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/38c04f8c
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/38c04f8c
Branch: refs/heads/master
Commit: 38c04f8cfa08e9552f83c7276aa32d4a427c3c5d
Parents: 93c1e0b
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Dec 7 10:33:01 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Thu Dec 7 10:33:01 2017 +0000
----------------------------------------------------------------------
.../apache/qpid/server/exchange/AbstractExchange.java | 5 +++--
.../server/model/UnknownConfiguredObjectException.java | 13 +++++++++++--
.../server/protocol/v0_10/ServerSessionDelegate.java | 2 +-
.../apache/qpid/server/protocol/v0_8/AMQChannel.java | 9 ++-------
.../apache/qpid/tests/protocol/v0_8/ExchangeTest.java | 1 -
5 files changed, 17 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38c04f8c/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 897878d..b3714e9 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,6 +71,7 @@ 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;
@@ -1054,9 +1055,9 @@ public abstract class AbstractExchange<T extends AbstractExchange<T>>
_virtualHost.getAttainedMessageDestination(destinationName, mayCreate);
if (messageDestination == null)
{
- throw new IllegalConfigurationException(String.format(
+ throw new UnknownConfiguredObjectException(String.format(
"Cannot create alternate binding for '%s' : Alternate binding destination '%s' cannot be found.",
- getName(), destinationName));
+ getName(), destinationName), ConfiguredObject.class, destinationName);
}
else if (messageDestination == this)
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38c04f8c/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 f35a68a..f460df7 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,13 +28,22 @@ public class UnknownConfiguredObjectException extends IllegalArgumentException
private String _name;
private UUID _id;
- public UnknownConfiguredObjectException(final Class<? extends ConfiguredObject> category, final String name)
+ public UnknownConfiguredObjectException(String exceptionMessage,
+ final Class<? extends ConfiguredObject> category,
+ final String name)
{
- super("Could not find object of category " + category.getSimpleName() + " with name '" + name + "'");
+ super(exceptionMessage);
_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/38c04f8c/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 ab5581c..9fd9b52 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
@@ -986,7 +986,7 @@ public class ServerSessionDelegate extends MethodDelegate<ServerSession> impleme
{
exception(session, method, ExecutionErrorCode.UNAUTHORIZED_ACCESS, e.getMessage());
}
- catch (IllegalConfigurationException e)
+ catch (IllegalArgumentException | IllegalConfigurationException e)
{
exception(session, method, ExecutionErrorCode.ILLEGAL_ARGUMENT, e.getMessage());
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38c04f8c/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 d2f071e..5eef253 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.Session;
import org.apache.qpid.server.model.UnknownConfiguredObjectException;
import org.apache.qpid.server.protocol.ErrorCodes;
import org.apache.qpid.server.protocol.ProtocolVersion;
@@ -2723,15 +2722,11 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
}
catch (UnknownConfiguredObjectException e)
{
- // note - since 0-8/9/9-1 can't set the alt. exchange this exception should never occur
- final String message = "Unknown alternate exchange "
- + (e.getName() != null
- ? "name: '" + e.getName() + "'"
- : "id: " + e.getId());
+ final String message = String.format("Unknown alternate exchange '%s'", e.getName());
_connection.sendConnectionClose(ErrorCodes.NOT_FOUND, message, getChannelId());
}
- catch (IllegalArgumentException e)
+ catch (IllegalArgumentException | IllegalConfigurationException e)
{
_connection.sendConnectionClose(ErrorCodes.COMMAND_INVALID, "Error creating exchange '"
+ exchangeName
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/38c04f8c/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/ExchangeTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/ExchangeTest.java b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/ExchangeTest.java
index 0d686dc..1428da9 100644
--- a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/ExchangeTest.java
+++ b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/ExchangeTest.java
@@ -423,7 +423,6 @@ public class ExchangeTest extends BrokerAdminUsingTestBase
/** Qpid specific extension */
@Test
- @Ignore("TODO - server fails if exchange is declared with unknown alternate exchange")
public void exchangeDeclareWithUnknownAlternateExchange() throws Exception
{
try(FrameTransport transport = new FrameTransport(_brokerAddress).connect())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org
[2/2] qpid-broker-j git commit: QPID-8060: [Broker-J] [AMQP
0-8..0-9-1] Handle unknown alternate exchange on queue declaration
Posted by or...@apache.org.
QPID-8060: [Broker-J] [AMQP 0-8..0-9-1] Handle unknown alternate exchange on queue declaration
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/268f3fb6
Tree: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/tree/268f3fb6
Diff: http://git-wip-us.apache.org/repos/asf/qpid-broker-j/diff/268f3fb6
Branch: refs/heads/master
Commit: 268f3fb68887208ce17987ed4d783e44073f9be8
Parents: 38c04f8
Author: Alex Rudyy <or...@apache.org>
Authored: Thu Dec 7 10:37:42 2017 +0000
Committer: Alex Rudyy <or...@apache.org>
Committed: Thu Dec 7 10:37:42 2017 +0000
----------------------------------------------------------------------
.../java/org/apache/qpid/server/queue/AbstractQueue.java | 4 ++--
.../server/protocol/v0_10/ServerSessionDelegate.java | 2 +-
.../org/apache/qpid/server/protocol/v0_8/AMQChannel.java | 11 ++++++++++-
.../org/apache/qpid/tests/protocol/v0_8/QueueTest.java | 1 -
4 files changed, 13 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/268f3fb6/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 ad40049..39584d6 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
@@ -3534,9 +3534,9 @@ public abstract class AbstractQueue<X extends AbstractQueue<X>>
_virtualHost.getAttainedMessageDestination(destinationName, mayCreate);
if (messageDestination == null)
{
- throw new IllegalConfigurationException(String.format(
+ throw new UnknownConfiguredObjectException(String.format(
"Cannot create alternate binding for '%s' : Alternate binding destination '%s' cannot be found.",
- getName(), destinationName));
+ getName(), destinationName), ConfiguredObject.class, destinationName);
}
else if (messageDestination == this)
{
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/268f3fb6/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 9fd9b52..ccaee39 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
@@ -1603,7 +1603,7 @@ public class ServerSessionDelegate extends MethodDelegate<ServerSession> impleme
{
exception(session, method, ExecutionErrorCode.UNAUTHORIZED_ACCESS, e.getMessage());
}
- catch (IllegalConfigurationException e)
+ catch (IllegalArgumentException | IllegalConfigurationException e)
{
exception(session, method, ExecutionErrorCode.ILLEGAL_ARGUMENT, e.getMessage());
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/268f3fb6/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 5eef253..07d0f91 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
@@ -3126,7 +3126,16 @@ public class AMQChannel extends AbstractAMQPSession<AMQChannel, ConsumerTarget_0
{
_connection.sendConnectionClose(ErrorCodes.ACCESS_REFUSED, e.getMessage(), getChannelId());
}
-
+ catch (UnknownConfiguredObjectException e)
+ {
+ final String message = String.format("Unknown alternate exchange: '%s'", e.getName());
+ _connection.sendConnectionClose(ErrorCodes.NOT_FOUND, message, getChannelId());
+ }
+ catch (IllegalArgumentException | IllegalConfigurationException e)
+ {
+ String message = String.format("Error creating queue '%s': %s", queueName, e.getMessage());
+ _connection.sendConnectionClose(ErrorCodes.COMMAND_INVALID, message, getChannelId());
+ }
}
}
http://git-wip-us.apache.org/repos/asf/qpid-broker-j/blob/268f3fb6/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
----------------------------------------------------------------------
diff --git a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
index ac7e72c..5657c85 100644
--- a/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
+++ b/systests/protocol-tests-amqp-0-8/src/test/java/org/apache/qpid/tests/protocol/v0_8/QueueTest.java
@@ -734,7 +734,6 @@ public class QueueTest extends BrokerAdminUsingTestBase
/** Qpid specific extension */
@Test
- @Ignore("TODO - server fails if queue is declared with unknown alternate exchange")
public void queueDeclareWithUnknownAlternateExchange() throws Exception
{
try(FrameTransport transport = new FrameTransport(_brokerAddress).connect())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org