summaryrefslogtreecommitdiff
path: root/qpid/java/client
diff options
context:
space:
mode:
authorRobert Godfrey <rgodfrey@apache.org>2014-04-25 00:01:33 +0000
committerRobert Godfrey <rgodfrey@apache.org>2014-04-25 00:01:33 +0000
commit4eddea8954ba9342ab2bc35e495baa673a6015db (patch)
tree32c82a8c8529db6c3f01b5123abce4e35b961c04 /qpid/java/client
parent6c082f6883922e98e627394c3fa951680a7729b2 (diff)
downloadqpid-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.java57
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;
}