diff options
| author | Robert Godfrey <rgodfrey@apache.org> | 2014-04-25 00:01:33 +0000 |
|---|---|---|
| committer | Robert Godfrey <rgodfrey@apache.org> | 2014-04-25 00:01:33 +0000 |
| commit | 4eddea8954ba9342ab2bc35e495baa673a6015db (patch) | |
| tree | 32c82a8c8529db6c3f01b5123abce4e35b961c04 /qpid/java/client | |
| parent | 6c082f6883922e98e627394c3fa951680a7729b2 (diff) | |
| download | qpid-python-4eddea8954ba9342ab2bc35e495baa673a6015db.tar.gz | |
QPID-5578 : Ensure correct error code is returned when a queue is declared with an unknown alternate exchange
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1589912 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/client')
| -rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java | 57 |
1 files changed, 30 insertions, 27 deletions
diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java index 29c2a3b279..f738a9e8aa 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession.java @@ -20,6 +20,28 @@ */ package org.apache.qpid.client; +import java.io.Serializable; +import java.net.URISyntaxException; +import java.text.MessageFormat; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ConcurrentLinkedQueue; +import java.util.concurrent.CopyOnWriteArrayList; +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import javax.jms.*; +import javax.jms.IllegalStateException; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -34,8 +56,8 @@ import org.apache.qpid.client.failover.FailoverNoopSupport; import org.apache.qpid.client.failover.FailoverProtectedOperation; import org.apache.qpid.client.failover.FailoverRetrySupport; import org.apache.qpid.client.message.AMQMessageDelegateFactory; -import org.apache.qpid.client.message.AMQPEncodedMapMessage; import org.apache.qpid.client.message.AMQPEncodedListMessage; +import org.apache.qpid.client.message.AMQPEncodedMapMessage; import org.apache.qpid.client.message.AbstractJMSMessage; import org.apache.qpid.client.message.CloseConsumerMessage; import org.apache.qpid.client.message.JMSBytesMessage; @@ -50,35 +72,13 @@ import org.apache.qpid.common.AMQPFilterTypes; import org.apache.qpid.configuration.ClientProperties; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.FieldTable; -import org.apache.qpid.jms.Session; import org.apache.qpid.jms.ListMessage; +import org.apache.qpid.jms.Session; import org.apache.qpid.protocol.AMQConstant; import org.apache.qpid.thread.Threading; import org.apache.qpid.transport.SessionException; import org.apache.qpid.transport.TransportException; -import javax.jms.*; -import javax.jms.IllegalStateException; - -import java.io.Serializable; -import java.net.URISyntaxException; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Collection; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentLinkedQueue; -import java.util.concurrent.CopyOnWriteArrayList; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; -import java.util.concurrent.locks.Lock; -import java.util.concurrent.locks.ReentrantLock; - /** * <p/><table id="crc"><caption>CRC Card</caption> * <tr><th> Responsibilities <th> Collaborations @@ -3491,15 +3491,18 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic JMSException toJMSException(String message, AMQException e) { JMSException ex; - if (e.getErrorCode() == AMQConstant.ACCESS_REFUSED) + + AMQConstant errorCode = e.getErrorCode(); + if (errorCode == AMQConstant.ACCESS_REFUSED) { - ex = new JMSSecurityException(message); + ex = new JMSSecurityException(message, String.valueOf(errorCode.getCode())); } else { - ex = new JMSException(message); + ex = new JMSException(message, errorCode == null ? null : String.valueOf(errorCode.getCode())); } ex.initCause(e); + ex.setLinkedException(e); return ex; } |
