diff options
| author | Rajith Muditha Attapattu <rajith@apache.org> | 2013-02-28 00:08:07 +0000 |
|---|---|---|
| committer | Rajith Muditha Attapattu <rajith@apache.org> | 2013-02-28 00:08:07 +0000 |
| commit | 8ba26143ef15381faefada81906b64f83cb09403 (patch) | |
| tree | e5f19e3dd6db4d2e2dd22057a401c65057ecdd55 /qpid/java/client | |
| parent | 119554c72479af7ecaeafd12d0f840c8fb50f415 (diff) | |
| download | qpid-python-8ba26143ef15381faefada81906b64f83cb09403.tar.gz | |
QPID-4608 Moved the exception handling code to a method. The method also
checks for authorization denied exceptions and throws a
JMSSecurityException instead of a regular JMSException. This allows
applications that are specifically looking for authorization failures to
handle that situation.There will not be any changes required for other
applications.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1451047 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 | 42 | ||||
| -rw-r--r-- | qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java | 6 |
2 files changed, 26 insertions, 22 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 91a6389214..f93b58f92f 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 @@ -59,6 +59,7 @@ 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; @@ -831,7 +832,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic } catch (AMQException e) { - throw new JMSAMQException("Exception during commit: " + e.getMessage() + ":" + e.getCause(), e); + throw toJMSException("Exception during commit: " + e.getMessage() + ":" + e.getCause(), e); } catch (FailoverException e) { @@ -1007,10 +1008,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic } catch(AMQException e) { - JMSException ex = new JMSException("Error when verifying destination"); - ex.initCause(e); - ex.setLinkedException(e); - throw ex; + throw toJMSException("Error when verifying destination",e); } catch(TransportException e) { @@ -1434,12 +1432,9 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic new FieldTable(), result.getExchangeName(), result); return result; } - catch (Exception e) + catch (AMQException e) { - JMSException jmse = new JMSException("Cannot create temporary queue"); - jmse.setLinkedException(e); - jmse.initCause(e); - throw jmse; + throw toJMSException("Cannot create temporary queue",e); } } @@ -1740,7 +1735,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic } catch (AMQException e) { - throw new JMSAMQException("Recover failed: " + e.getMessage(), e); + throw toJMSException("Recover failed: " + e.getMessage(), e); } catch (FailoverException e) { @@ -1826,7 +1821,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic } catch (AMQException e) { - throw new JMSAMQException("Failed to rollback: " + e, e); + throw toJMSException("Failed to rollback: " + e, e); } catch (FailoverException e) { @@ -2015,10 +2010,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic close(-1, false); } - JMSException ex = new JMSException("Error registering consumer: " + e); - ex.setLinkedException(e); - ex.initCause(e); - throw ex; + throw toJMSException("Error registering consumer: " + e,e); } catch (TransportException e) { @@ -2753,7 +2745,7 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic } catch (AMQException e) { - throw new JMSAMQException("The queue deletion failed: " + e.getMessage(), e); + throw toJMSException("The queue deletion failed: " + e.getMessage(), e); } } @@ -3456,6 +3448,22 @@ public abstract class AMQSession<C extends BasicMessageConsumer, P extends Basic return code; } + JMSException toJMSException(String message, AMQException e) + { + JMSException ex; + if (e.getErrorCode() == AMQConstant.ACCESS_REFUSED) + { + ex = new JMSSecurityException(message); + } + else + { + ex = new JMSException(message); + } + ex.initCause(e); + ex.setLinkedException(e); + return ex; + } + private boolean isBrowseOnlyDestination(Destination destination) { return ((destination instanceof AMQDestination) && ((AMQDestination)destination).isBrowseOnly()); diff --git a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java index 8490a724bf..2915b25122 100644 --- a/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java +++ b/qpid/java/client/src/main/java/org/apache/qpid/client/AMQSession_0_10.java @@ -691,11 +691,7 @@ public class AMQSession_0_10 extends AMQSession<BasicMessageConsumer_0_10, Basic } catch (AMQException e) { - JMSException ex = new JMSException("Error creating producer"); - ex.initCause(e); - ex.setLinkedException(e); - - throw ex; + throw toJMSException("Error creating producer",e); } catch(TransportException e) { |
