From 0145654a749697a52194aad13b55351667022b8e Mon Sep 17 00:00:00 2001 From: Rupert Smith Date: Tue, 12 Jun 2007 09:52:29 +0000 Subject: QPID-465, now throws UnsupportedOperationException when sending to a null queue in QueueSender. git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/M2@546441 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/qpid/client/QueueSenderAdapter.java | 29 +++++++++++++++------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'java') diff --git a/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java b/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java index a219f7d655..9eb826ba62 100644 --- a/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java +++ b/java/client/src/main/java/org/apache/qpid/client/QueueSenderAdapter.java @@ -2,12 +2,12 @@ package org.apache.qpid.client; import javax.jms.Destination; import javax.jms.IllegalStateException; +import javax.jms.InvalidDestinationException; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageProducer; import javax.jms.Queue; import javax.jms.QueueSender; -import javax.jms.InvalidDestinationException; public class QueueSenderAdapter implements QueueSender { @@ -25,6 +25,7 @@ public class QueueSenderAdapter implements QueueSender public Queue getQueue() throws JMSException { checkPreConditions(); + return _queue; } @@ -40,15 +41,13 @@ public class QueueSenderAdapter implements QueueSender _delegate.send(queue, msg); } - public void publish(Message msg, int deliveryMode, int priority, long timeToLive) - throws JMSException + public void publish(Message msg, int deliveryMode, int priority, long timeToLive) throws JMSException { checkPreConditions(); _delegate.send(msg, deliveryMode, priority, timeToLive); } - public void send(Queue queue, Message msg, int deliveryMode, int priority, long timeToLive) - throws JMSException + public void send(Queue queue, Message msg, int deliveryMode, int priority, long timeToLive) throws JMSException { checkPreConditions(queue); _delegate.send(queue, msg, deliveryMode, priority, timeToLive); @@ -63,36 +62,42 @@ public class QueueSenderAdapter implements QueueSender public int getDeliveryMode() throws JMSException { checkPreConditions(); + return _delegate.getDeliveryMode(); } public Destination getDestination() throws JMSException { checkPreConditions(); + return _delegate.getDestination(); } public boolean getDisableMessageID() throws JMSException { checkPreConditions(); + return _delegate.getDisableMessageID(); } public boolean getDisableMessageTimestamp() throws JMSException { checkPreConditions(); + return _delegate.getDisableMessageTimestamp(); } public int getPriority() throws JMSException { checkPreConditions(); + return _delegate.getPriority(); } public long getTimeToLive() throws JMSException { checkPreConditions(); + return _delegate.getTimeToLive(); } @@ -102,8 +107,7 @@ public class QueueSenderAdapter implements QueueSender _delegate.send(dest, msg); } - public void send(Message msg, int deliveryMode, int priority, long timeToLive) - throws JMSException + public void send(Message msg, int deliveryMode, int priority, long timeToLive) throws JMSException { checkPreConditions(); _delegate.send(msg, deliveryMode, priority, timeToLive); @@ -159,15 +163,21 @@ public class QueueSenderAdapter implements QueueSender AMQSession session = ((BasicMessageProducer) _delegate).getSession(); - if (session == null || session.isClosed()) + if ((session == null) || session.isClosed()) { throw new javax.jms.IllegalStateException("Invalid Session"); } + if (queue == null) + { + throw new UnsupportedOperationException("Queue is null."); + } + if (!(queue instanceof AMQDestination)) { throw new InvalidDestinationException("Queue: " + queue + " is not a valid Qpid queue"); } + AMQDestination destination = (AMQDestination) queue; if (!destination.isValidated() && checkQueueBeforePublish()) { @@ -185,7 +195,8 @@ public class QueueSenderAdapter implements QueueSender } else { - throw new InvalidDestinationException("Queue: " + queue + " is not a valid destination (no bindings on server"); + throw new InvalidDestinationException("Queue: " + queue + + " is not a valid destination (no bindings on server"); } } } -- cgit v1.2.1