Author: rgodfrey
Date: Mon Apr 27 15:01:28 2015
New Revision: 1676290
URL: http://svn.apache.org/r1676290
Log:
QPID-6512 : More consistent handling of (JMS) exception chaining [work done by
Lorenz Quack]
Added:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java
(with props)
Removed:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/JMSAMQException.java
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQTopic.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedListMessage.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnection.java
Mon Apr 27 15:01:28 2015
@@ -22,7 +22,6 @@ package org.apache.qpid.client;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
-import java.net.ConnectException;
import java.net.SocketAddress;
import java.net.UnknownHostException;
import java.nio.channels.UnresolvedAddressException;
@@ -68,6 +67,7 @@ import org.apache.qpid.client.failover.F
import org.apache.qpid.client.protocol.AMQProtocolHandler;
import org.apache.qpid.client.security.CallbackHandlerRegistry;
import org.apache.qpid.client.state.AMQStateManager;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.exchange.ExchangeDefaults;
@@ -857,7 +857,7 @@ public class AMQConnection extends Close
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Connection.start failed"), e);
}
}
@@ -877,7 +877,7 @@ public class AMQConnection extends Close
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Connection.stop failed."), e);
}
}
@@ -943,10 +943,7 @@ public class AMQConnection extends Close
catch (JMSException e)
{
_logger.error("Error closing connection", e);
- JMSException jmse = new JMSException("Error closing
connection: " + e);
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error closing connection: " + e), e);
}
finally
{
@@ -1264,7 +1261,11 @@ public class AMQConnection extends Close
if (code != null)
{
- je = new JMSException("Exception thrown against " + toString()
+ ": " + cause, Integer.toString(code.getCode()));
+ je = JMSExceptionHelper.chainJMSException(new
JMSException("Exception thrown against "
+ +
toString()
+ +
": "
+ +
cause, Integer.toString(code.getCode())),
+ cause);
}
else
{
@@ -1280,15 +1281,11 @@ public class AMQConnection extends Close
cause = last;
}
}
- je = new JMSException("Exception thrown against " + toString()
+ ": " + cause);
+ je = JMSExceptionHelper.chainJMSException(new
JMSException("Exception thrown against "
+ +
toString()
+ +
": "
+ +
cause), cause);
}
-
- if (cause instanceof Exception)
- {
- je.setLinkedException((Exception) cause);
- }
-
- je.initCause(cause);
}
boolean closer = false;
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
Mon Apr 27 15:01:28 2015
@@ -40,6 +40,7 @@ import org.apache.qpid.AMQException;
import org.apache.qpid.client.failover.FailoverException;
import org.apache.qpid.client.failover.FailoverProtectedOperation;
import org.apache.qpid.client.transport.ClientConnectionDelegate;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.ServerPropertyNames;
import org.apache.qpid.framing.ProtocolVersion;
import org.apache.qpid.jms.BrokerDetails;
@@ -122,7 +123,7 @@ public class AMQConnectionDelegate_0_10
catch (Exception e)
{
_logger.error("exception creating session:", e);
- throw new JMSAMQException("cannot create session", e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("cannot create session"), e);
}
return session;
}
@@ -164,7 +165,7 @@ public class AMQConnectionDelegate_0_10
}
catch (Exception e)
{
- throw new JMSAMQException("cannot create session", e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("cannot create session"), e);
}
return session;
}
@@ -193,7 +194,7 @@ public class AMQConnectionDelegate_0_10
}
catch (Exception e)
{
- throw new JMSAMQException("cannot create session", e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("cannot create session"), e);
}
return session;
}
@@ -381,11 +382,8 @@ public class AMQConnectionDelegate_0_10
{
code = close.getReplyCode().toString();
}
-
- JMSException ex = new JMSException(exc.getMessage(), code);
- ex.setLinkedException(exc);
- ex.initCause(exc);
- listener.onException(ex);
+
listener.onException(JMSExceptionHelper.chainJMSException(new
JMSException(exc.getMessage(), code),
+
exc));
}
});
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
Mon Apr 27 15:01:28 2015
@@ -44,6 +44,7 @@ import org.apache.qpid.client.failover.F
import org.apache.qpid.client.protocol.AMQProtocolSession;
import org.apache.qpid.client.state.AMQState;
import org.apache.qpid.client.state.StateWaiter;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.ServerPropertyNames;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.framing.ChannelOpenBody;
@@ -277,10 +278,8 @@ public class AMQConnectionDelegate_8_0 i
}
catch (AMQException e)
{
- JMSException jmse = new JMSException("Error
creating session: " + e);
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error creating session: " + e),
+ e);
}
finally
{
@@ -298,7 +297,7 @@ public class AMQConnectionDelegate_8_0 i
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Session.start failed"), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
Mon Apr 27 15:01:28 2015
@@ -20,6 +20,7 @@
*/
package org.apache.qpid.client;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.jms.ConnectionURL;
import org.apache.qpid.url.AMQBindingURL;
import org.apache.qpid.url.URLSyntaxException;
@@ -125,10 +126,8 @@ public class AMQConnectionFactory implem
}
catch (Exception e)
{
- JMSException jmse = new JMSException("Error creating connection: "
+ e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Error
creating connection: " + e.getMessage()),
+ e);
}
}
@@ -159,10 +158,8 @@ public class AMQConnectionFactory implem
}
catch (Exception e)
{
- JMSException jmse = new JMSException("Error creating
connection: " + e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error creating connection: "
+ +
e.getMessage()), e);
}
}
else
@@ -302,10 +299,8 @@ public class AMQConnectionFactory implem
}
catch (Exception e)
{
- JMSException jmse = new JMSException("Error creating connection: "
+ e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Error
creating connection: " + e.getMessage()),
+ e);
}
}
@@ -339,10 +334,8 @@ public class AMQConnectionFactory implem
}
catch (Exception e)
{
- JMSException jmse = new JMSException("Error creating XA
Connection: " + e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error creating XA Connection: "
+ +
e.getMessage()), e);
}
}
else
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQQueueBrowser.java
Mon Apr 27 15:01:28 2015
@@ -25,6 +25,7 @@ import javax.jms.InvalidSelectorExceptio
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQInternalException;
import org.apache.qpid.client.filter.JMSSelectorFilter;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.protocol.AMQConstant;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -93,9 +94,9 @@ public class AMQQueueBrowser implements
}
else
{
- final JMSException jmsException = new
JMSException(e.getMessage(), String.valueOf(e.getErrorCode().getCode()));
- jmsException.setLinkedException(e);
- throw jmsException;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(e.getMessage(),
+
String.valueOf(e.getErrorCode().getCode())),
+ e);
}
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
--- qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession.java
(original)
+++ qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession.java
Mon Apr 27 15:01:28 2015
@@ -70,6 +70,7 @@ import org.apache.qpid.client.message.Me
import org.apache.qpid.client.message.UnprocessedMessage;
import org.apache.qpid.client.messaging.address.Node;
import org.apache.qpid.client.util.FlowControllingBlockingQueue;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.AMQPFilterTypes;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.exchange.ExchangeDefaults;
@@ -475,12 +476,8 @@ public abstract class AMQSession<C exten
AMQException ex = getLastException();
if (ex != null)
{
- IllegalStateException ssnClosed = new IllegalStateException(
- "Session has been closed",
ex.getErrorCode().toString());
-
- ssnClosed.setLinkedException(ex);
- ssnClosed.initCause(ex);
- throw ssnClosed;
+ throw JMSExceptionHelper.chainJMSException(new
IllegalStateException("Session has been closed",
+
ex.getErrorCode().toString()), ex);
}
else
{
@@ -771,10 +768,7 @@ public abstract class AMQSession<C exten
}
catch (AMQException e)
{
- JMSException jmse = new JMSException("Error closing session: "
+ e);
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error closing session: " + e), e);
}
// This is ignored because the channel is already marked as closed
so the fail-over process will
// not re-open it.
@@ -886,7 +880,8 @@ public abstract class AMQSession<C exten
}
catch (FailoverException e)
{
- throw new JMSAMQException("Fail-over interrupted commit. Status of
the commit is uncertain.", e);
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Fail-over interrupted commit. Status of the commit is
uncertain."), e);
}
catch(TransportException e)
{
@@ -1287,10 +1282,7 @@ public abstract class AMQSession<C exten
catch (URISyntaxException urlse)
{
_logger.error("", urlse);
- JMSException jmse = new JMSException(urlse.getReason());
- jmse.setLinkedException(urlse);
- jmse.initCause(urlse);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(urlse.getReason()), urlse);
}
}
@@ -1518,7 +1510,8 @@ public abstract class AMQSession<C exten
}
catch(Exception e)
{
- throw new JMSAMQException("Cannot create temporary queue: " +
e.getMessage(), e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Cannot create temporary queue: "
+ +
e.getMessage()), e);
}
}
@@ -1580,10 +1573,7 @@ public abstract class AMQSession<C exten
catch (URISyntaxException urlse)
{
_logger.error("", urlse);
- JMSException jmse = new JMSException(urlse.getReason());
- jmse.setLinkedException(urlse);
- jmse.initCause(urlse);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(urlse.getReason()), urlse);
}
}
@@ -1829,7 +1819,8 @@ public abstract class AMQSession<C exten
}
catch (FailoverException e)
{
- throw new JMSAMQException("Recovery was interrupted by fail-over.
Recovery status is not known.", e);
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Recovery was interrupted by fail-over. Recovery status is
not known."), e);
}
catch(TransportException e)
{
@@ -1915,7 +1906,8 @@ public abstract class AMQSession<C exten
}
catch (FailoverException e)
{
- throw new JMSAMQException("Fail-over interrupted rollback.
Status of the rollback is uncertain.", e);
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Fail-over interrupted rollback. Status of the
rollback is uncertain."), e);
}
catch (TransportException e)
{
@@ -2082,17 +2074,15 @@ public abstract class AMQSession<C exten
}
catch (AMQInvalidArgumentException ise)
{
- JMSException jmse = new
InvalidSelectorException(ise.getMessage());
- jmse.setLinkedException(ise);
- jmse.initCause(ise);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
InvalidSelectorException(ise.getMessage()),
+ ise);
}
catch (AMQInvalidRoutingKeyException e)
{
- JMSException jmse = new
InvalidDestinationException("Invalid routing key:" +
amqd.getRoutingKey().toString());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
InvalidDestinationException(
+ "Invalid routing key:"
+ + amqd.getRoutingKey().toString()
+ ), e);
}
catch (AMQException e)
{
@@ -3619,10 +3609,7 @@ public abstract class AMQSession<C exten
JMSException toJMSException(String message, TransportException e)
{
int code = getErrorCode(e);
- JMSException jmse = new JMSException(message, Integer.toString(code));
- jmse.setLinkedException(e);
- jmse.initCause(e);
- return jmse;
+ return JMSExceptionHelper.chainJMSException(new JMSException(message,
Integer.toString(code)), e);
}
private int getErrorCode(TransportException e)
@@ -3646,15 +3633,14 @@ public abstract class AMQSession<C exten
AMQConstant errorCode = e.getErrorCode();
if (errorCode == AMQConstant.ACCESS_REFUSED)
{
- ex = new JMSSecurityException(message,
String.valueOf(errorCode.getCode()));
+ ex = JMSExceptionHelper.chainJMSException(new
JMSSecurityException(message,
+
String.valueOf(errorCode.getCode())), e);
}
else
{
- ex = new JMSException(message, errorCode == null ? null :
String.valueOf(errorCode.getCode()));
+ String errorCode1 = errorCode == null ? null :
String.valueOf(errorCode.getCode());
+ ex = JMSExceptionHelper.chainJMSException(new
JMSException(message, errorCode1), e);
}
- ex.initCause(e);
-
- ex.setLinkedException(e);
return ex;
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQSession_0_8.java
Mon Apr 27 15:01:28 2015
@@ -27,7 +27,6 @@ import static org.apache.qpid.configurat
import static
org.apache.qpid.configuration.ClientProperties.QPID_FLOW_CONTROL_WAIT_NOTIFY_PERIOD;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
@@ -60,6 +59,7 @@ import org.apache.qpid.client.protocol.A
import org.apache.qpid.client.state.AMQState;
import org.apache.qpid.client.state.AMQStateManager;
import org.apache.qpid.client.state.listener.SpecificMethodFrameListener;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.AMQPFilterTypes;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.framing.*;
@@ -150,7 +150,8 @@ public class AMQSession_0_8 extends AMQS
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Session.reduceCreditAfterAcknowledge failed"),
+ e);
}
while (true)
{
@@ -173,7 +174,7 @@ public class AMQSession_0_8 extends AMQS
}
catch (AMQException a)
{
- throw new JMSAMQException("Failed to sync after acknowledge", a);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Failed to sync after acknowledge"), a);
}
}
@@ -442,7 +443,8 @@ public class AMQSession_0_8 extends AMQS
}
catch (AMQException e)
{
- throw new JMSAMQException("Queue bound query failed: " +
e.getMessage(), e);
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Queue
bound query failed: " + e.getMessage()),
+ e);
}
}
@@ -746,11 +748,7 @@ public class AMQSession_0_8 extends AMQS
}
catch (AMQException e)
{
- JMSException ex = new JMSException("Error creating producer");
- ex.initCause(e);
- ex.setLinkedException(e);
-
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Error
creating producer"), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQTopic.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQTopic.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
--- qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQTopic.java
(original)
+++ qpid/java/trunk/client/src/main/java/org/apache/qpid/client/AMQTopic.java
Mon Apr 27 15:01:28 2015
@@ -26,6 +26,7 @@ import javax.jms.InvalidDestinationExcep
import javax.jms.JMSException;
import javax.jms.Topic;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.exchange.ExchangeDefaults;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.messaging.Address;
@@ -138,10 +139,7 @@ public class AMQTopic extends AMQDestina
}
catch(Exception e)
{
- JMSException ex = new JMSException("Error creating durable
topic");
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error creating durable topic"), e);
}
}
else
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer.java
Mon Apr 27 15:01:28 2015
@@ -48,6 +48,7 @@ import org.apache.qpid.client.message.AM
import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.client.message.CloseConsumerMessage;
import org.apache.qpid.client.message.MessageFactoryRegistry;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.AMQPFilterTypes;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.framing.FieldTable;
@@ -171,9 +172,8 @@ public abstract class BasicMessageConsum
}
catch (final AMQInternalException ie)
{
- InvalidSelectorException ise = new
InvalidSelectorException("cannot create consumer because of selector issue");
- ise.setLinkedException(ie);
- throw ise;
+ throw JMSExceptionHelper.chainJMSException(new
InvalidSelectorException(
+ "cannot create consumer because of selector issue"), ie);
}
// Force queue browsers not to use acknowledge modes.
@@ -552,14 +552,8 @@ public abstract class BasicMessageConsum
// errors are passed via the queue too since there is no way of
interrupting the poll() via the API.
if (o instanceof Throwable)
{
- JMSException e = new JMSException("Message consumer forcibly
closed due to error: " + o);
- e.initCause((Throwable) o);
- if (o instanceof Exception)
- {
- e.setLinkedException((Exception) o);
- }
-
- throw e;
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Message consumer forcibly closed due to error: " + o),
(Throwable) o);
}
else if (o instanceof CloseConsumerMessage)
{
@@ -624,11 +618,12 @@ public abstract class BasicMessageConsum
}
catch (AMQException e)
{
- throw new JMSAMQException("Error closing consumer: " + e,
e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Error closing consumer: " + e.getMessage()), e);
}
catch (FailoverException e)
{
- throw new JMSAMQException("FailoverException interrupted
basic cancel.", e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(
+ "FailoverException interrupted basic cancel."), e);
}
catch (TransportException e)
{
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_10.java
Mon Apr 27 15:01:28 2015
@@ -34,6 +34,7 @@ import org.apache.qpid.client.message.AM
import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.client.message.MessageFactoryRegistry;
import org.apache.qpid.client.message.UnprocessedMessage_0_10;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.ServerPropertyNames;
import org.apache.qpid.framing.FieldTable;
import org.apache.qpid.jms.Session;
@@ -580,7 +581,7 @@ public class BasicMessageConsumer_0_10 e
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("BasicMessageConsumer.receive failed"), e);
}
}
@@ -614,7 +615,8 @@ public class BasicMessageConsumer_0_10 e
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("BasicMessageConsumer.receiveNoWait failed."),
+ e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageConsumer_0_8.java
Mon Apr 27 15:01:28 2015
@@ -33,6 +33,7 @@ import org.apache.qpid.client.message.AM
import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.client.message.MessageFactoryRegistry;
import org.apache.qpid.client.message.UnprocessedMessage_0_8;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.common.AMQPFilterTypes;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.framing.AMQFrame;
@@ -193,7 +194,7 @@ public class BasicMessageConsumer_0_8 ex
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("BasicMessageConsumer.receive failed."), e);
}
}
@@ -226,7 +227,8 @@ public class BasicMessageConsumer_0_8 ex
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("BasicMessageConsumer.receiveNoWait failed"),
+ e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer.java
Mon Apr 27 15:01:28 2015
@@ -39,6 +39,7 @@ import org.slf4j.Logger;
import org.apache.qpid.AMQException;
import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.client.message.MessageConverter;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.transport.TransportException;
import org.apache.qpid.util.UUIDGen;
import org.apache.qpid.util.UUIDs;
@@ -308,10 +309,8 @@ public abstract class BasicMessageProduc
}
catch (AMQException e)
{
- JMSException ex = new JMSException("Exception while closing
producer:" + e.getMessage());
- ex.setLinkedException(e);
- ex.initCause(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Exception while closing producer:"
+ +
e.getMessage()), e);
}
}
}
@@ -481,11 +480,8 @@ public abstract class BasicMessageProduc
}
catch(Exception e)
{
- JMSException ex = new InvalidDestinationException("Error
validating destination");
- ex.initCause(e);
- ex.setLinkedException(e);
-
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
InvalidDestinationException(
+ "Error validating destination"), e);
}
amqDestination.setExchangeExistsChecked(true);
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_10.java
Mon Apr 27 15:01:28 2015
@@ -39,6 +39,7 @@ import org.apache.qpid.client.message.AM
import org.apache.qpid.client.message.AbstractJMSMessage;
import org.apache.qpid.client.message.QpidMessageProperties;
import org.apache.qpid.client.messaging.address.Link.Reliability;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.transport.DeliveryProperties;
import org.apache.qpid.transport.Header;
import org.apache.qpid.transport.MessageAcceptMode;
@@ -257,10 +258,8 @@ public class BasicMessageProducer_0_10 e
}
catch (Exception e)
{
- JMSException jmse = new JMSException("Exception when sending
message:" + e.getMessage());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Exception when sending message:"
+ +
e.getMessage()), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/BasicMessageProducer_0_8.java
Mon Apr 27 15:01:28 2015
@@ -38,6 +38,7 @@ import org.apache.qpid.client.message.Ab
import org.apache.qpid.client.message.QpidMessageProperties;
import org.apache.qpid.client.protocol.AMQProtocolHandler;
import org.apache.qpid.client.protocol.BlockingMethodFrameListener;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.configuration.ClientProperties;
import org.apache.qpid.framing.AMQFrame;
import org.apache.qpid.framing.AMQMethodBody;
@@ -242,10 +243,8 @@ public class BasicMessageProducer_0_8 ex
}
catch (InterruptedException e)
{
- JMSException jmse = new JMSException("Interrupted while waiting
for flow control to be removed");
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Interrupted while waiting for flow control to be
removed"), e);
}
AMQConnectionDelegate_8_0 connectionDelegate80 =
(AMQConnectionDelegate_8_0) (getConnection().getDelegate());
@@ -274,11 +273,12 @@ public class BasicMessageProducer_0_8 ex
}
catch (AMQException e)
{
- throw new JMSAMQException(e);
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(e.getMessage()), e);
}
catch (FailoverException e)
{
- throw new JMSAMQException("Fail-over interrupted send. Status
of the send is uncertain.", e);
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Fail-over interrupted send. Status of the send is
uncertain."), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQMessageDelegate_0_10.java
Mon Apr 27 15:01:28 2015
@@ -46,6 +46,7 @@ import org.apache.qpid.AMQPInvalidClassE
import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.client.AMQDestination.DestSyntax;
import org.apache.qpid.client.CustomJMSXProperty;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.jms.Message;
import org.apache.qpid.transport.DeliveryProperties;
@@ -322,17 +323,13 @@ public class AMQMessageDelegate_0_10 ext
}
catch(AMQException ex)
{
- JMSException e = new JMSException("Error occured while figuring
out the node type");
- e.initCause(ex);
- e.setLinkedException(ex);
- throw e;
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Error occured while figuring out the node type"), ex);
}
catch (TransportException e)
{
- JMSException jmse = new JMSException("Exception occured while
figuring out the node type:" + e.getMessage());
- jmse.initCause(e);
- jmse.setLinkedException(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new JMSException(
+ "Exception occured while figuring out the node type:" +
e.getMessage()), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedListMessage.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedListMessage.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedListMessage.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AMQPEncodedListMessage.java
Mon Apr 27 15:01:28 2015
@@ -25,6 +25,7 @@ import org.slf4j.LoggerFactory;
import org.apache.qpid.AMQException;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.transport.codec.BBDecoder;
import org.apache.qpid.transport.codec.BBEncoder;
@@ -97,11 +98,7 @@ public class AMQPEncodedListMessage exte
}
catch (Exception e)
{
- MessageFormatException ex = new MessageFormatException("Error
adding to ListMessage");
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
-
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException("Error adding to ListMessage"), e);
}
}
@@ -115,11 +112,8 @@ public class AMQPEncodedListMessage exte
}
catch (Exception e)
{
- MessageFormatException ex = new MessageFormatException("Error
adding to ListMessage at "
- + index);
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException("Error adding to ListMessage at "
+
+ index), e);
}
}
@@ -131,10 +125,7 @@ public class AMQPEncodedListMessage exte
}
catch (Exception e)
{
- JMSException ex = new JMSException("Error when looking up object");
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Error
when looking up object"), e);
}
}
@@ -146,11 +137,8 @@ public class AMQPEncodedListMessage exte
}
catch (IndexOutOfBoundsException e)
{
- MessageFormatException ex = new MessageFormatException(
- "Error getting ListMessage element at " + index);
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException(
+ "Error getting ListMessage element at " + index), e);
}
}
@@ -173,11 +161,8 @@ public class AMQPEncodedListMessage exte
}
catch (IndexOutOfBoundsException e)
{
- MessageFormatException ex = new MessageFormatException(
- "Error removing ListMessage element at " + index);
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException(
+ "Error removing ListMessage element at " + index), e);
}
}
@@ -197,11 +182,8 @@ public class AMQPEncodedListMessage exte
}
catch (Exception e)
{
- MessageFormatException ex = new MessageFormatException(
- "Error setting ListMessage element at " + index);
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException(
+ "Error setting ListMessage element at " + index), e);
}
}
@@ -239,10 +221,7 @@ public class AMQPEncodedListMessage exte
}
catch (NumberFormatException e)
{
- JMSException ex = new JMSException("Invalid index string");
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Invalid index string"), e);
}
if (isValidIndex(index))
return index;
@@ -262,10 +241,8 @@ public class AMQPEncodedListMessage exte
}
catch (NumberFormatException e)
{
- JMSException ex = new JMSException("The property name should be a
valid index");
- ex.initCause(e);
- ex.setLinkedException(e);
- throw ex;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("The
property name should be a valid index"),
+ e);
}
if (isValidIndex(index))
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/AbstractBytesTypedMessage.java
Mon Apr 27 15:01:28 2015
@@ -22,6 +22,7 @@
package org.apache.qpid.client.message;
import org.apache.qpid.AMQException;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.transport.util.Functions;
import javax.jms.JMSException;
@@ -98,10 +99,7 @@ public abstract class AbstractBytesTyped
}
catch (Exception e)
{
- JMSException jmse = new JMSException(e.toString());
- jmse.setLinkedException(e);
- jmse.initCause(e);
- throw jmse;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException(e.toString()), e);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSHeaderAdapter.java
Mon Apr 27 15:01:28 2015
@@ -30,6 +30,7 @@ import javax.jms.JMSException;
import javax.jms.MessageFormatException;
import org.apache.qpid.AMQPInvalidClassException;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.framing.FieldTable;
@@ -343,10 +344,8 @@ public final class JMSHeaderAdapter
}
catch (AMQPInvalidClassException aice)
{
- MessageFormatException mfe = new
MessageFormatException(AMQPInvalidClassException.INVALID_OBJECT_MSG + (object
== null ? "null" : object.getClass()));
- mfe.setLinkedException(aice);
- mfe.initCause(aice);
- throw mfe;
+ String msg = AMQPInvalidClassException.INVALID_OBJECT_MSG +
(object == null ? "null" : object.getClass());
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException(msg), aice);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
Mon Apr 27 15:01:28 2015
@@ -22,6 +22,7 @@ package org.apache.qpid.client.message;
import org.apache.qpid.AMQException;
import org.apache.qpid.client.util.ClassLoadingAwareObjectInputStream;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import org.apache.qpid.util.ByteBufferInputStream;
import javax.jms.JMSException;
@@ -100,10 +101,8 @@ public class JMSObjectMessage extends Ab
{
if(_exception != null)
{
- final MessageFormatException messageFormatException =
- new MessageFormatException("Unable to deserialize
message");
- messageFormatException.setLinkedException(_exception);
- throw messageFormatException;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException("Unable to deserialize message"),
+ _exception);
}
if(_readData == null)
{
@@ -122,10 +121,11 @@ public class JMSObjectMessage extends Ab
}
catch (IOException e)
{
- final JMSException jmsException = new JMSException("Unable to
encode object of type: " +
- _readData.getClass().getName() + ", value " +
_readData);
- jmsException.setLinkedException(e);
- throw jmsException;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Unable to encode object of type: "
+ +
+
_readData.getClass().getName()
+ +
", value "
+ +
_readData), e);
}
}
}
@@ -145,10 +145,11 @@ public class JMSObjectMessage extends Ab
}
catch (IOException e)
{
- final JMSException jmsException = new JMSException("Unable to
encode object of type: " +
- serializable.getClass().getName() + ", value " +
serializable);
- jmsException.setLinkedException(e);
- throw jmsException;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Unable to encode object of type: "
+ +
+
serializable.getClass().getName()
+ + ",
value "
+ +
serializable), e);
}
}
@@ -157,9 +158,8 @@ public class JMSObjectMessage extends Ab
{
if(_exception != null)
{
- final MessageFormatException messageFormatException = new
MessageFormatException("Unable to deserialize message");
- messageFormatException.setLinkedException(_exception);
- throw messageFormatException;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException("Unable to deserialize message"),
+ _exception);
}
else if(_readData != null || _data == null)
{
@@ -183,9 +183,7 @@ public class JMSObjectMessage extends Ab
exception = e;
}
- JMSException jmsException = new JMSException("Could not
deserialize object");
- jmsException.setLinkedException(exception);
- throw jmsException;
+ throw JMSExceptionHelper.chainJMSException(new JMSException("Could
not deserialize object"), exception);
}
}
Modified:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
(original)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/message/JMSTextMessage.java
Mon Apr 27 15:01:28 2015
@@ -22,6 +22,7 @@ package org.apache.qpid.client.message;
import org.apache.qpid.AMQException;
import org.apache.qpid.client.CustomJMSXProperty;
+import org.apache.qpid.client.util.JMSExceptionHelper;
import javax.jms.JMSException;
import javax.jms.MessageFormatException;
@@ -100,9 +101,8 @@ public class JMSTextMessage extends Abst
{
if(_exception != null)
{
- final MessageFormatException messageFormatException = new
MessageFormatException("Cannot decode original message");
- messageFormatException.setLinkedException(_exception);
- throw messageFormatException;
+ throw JMSExceptionHelper.chainJMSException(new
MessageFormatException("Cannot decode original message"),
+ _exception);
}
else if(_decodedValue == null)
{
@@ -115,9 +115,8 @@ public class JMSTextMessage extends Abst
}
catch (CharacterCodingException e)
{
- final JMSException jmsException = new JMSException("Cannot encode
string in UFT-8: " + _decodedValue);
- jmsException.setLinkedException(e);
- throw jmsException;
+ throw JMSExceptionHelper.chainJMSException(new
JMSException("Cannot encode string in UFT-8: "
+ +
_decodedValue), e);
}
}
Added:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java?rev=1676290&view=auto
==============================================================================
---
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java
(added)
+++
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java
Mon Apr 27 15:01:28 2015
@@ -0,0 +1,52 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+ */
+package org.apache.qpid.client.util;
+
+import java.lang.reflect.InvocationTargetException;
+
+import javax.jms.JMSException;
+
+/**
+ * Helper class to create correctly chained JMSExceptions
+ *
+ * Created by Lorenz Quack on 27/04/2015.
+ */
+public class JMSExceptionHelper
+{
+
+ /**
+ * Creates a JMSException, wrapping another exception class.
+ *
+ * @param jmsException The JMS Exception.
+ * @param cause The underlying exception that caused this one.
+ */
+ static public JMSException chainJMSException(JMSException jmsException,
Throwable cause)
+ {
+ jmsException.initCause(cause);
+ if (cause instanceof Exception)
+ {
+ jmsException.setLinkedException((Exception) cause);
+ }
+ return jmsException;
+ }
+
+
+}
Propchange:
qpid/java/trunk/client/src/main/java/org/apache/qpid/client/util/JMSExceptionHelper.java
------------------------------------------------------------------------------
svn:eol-style = native
Modified:
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
(original)
+++
qpid/java/trunk/jca/src/main/java/org/apache/qpid/ra/QpidRASessionFactoryImpl.java
Mon Apr 27 15:01:28 2015
@@ -796,6 +796,7 @@ public class QpidRASessionFactoryImpl im
JMSException je = new JMSException("Could not create a session: " +
e.getMessage());
je.setLinkedException(e);
+ je.initCause(e);
throw je;
}
}
@@ -893,6 +894,7 @@ public class QpidRASessionFactoryImpl im
JMSException je = new JMSException("Could not create a session: " +
e.getMessage());
je.setLinkedException(e);
+ je.initCause(e);
throw je;
}
}
Modified:
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java
URL:
http://svn.apache.org/viewvc/qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java?rev=1676290&r1=1676289&r2=1676290&view=diff
==============================================================================
---
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java
(original)
+++
qpid/java/trunk/systests/src/test/java/org/apache/qpid/test/unit/ack/AcknowledgeOnMessageTest.java
Mon Apr 27 15:01:28 2015
@@ -22,9 +22,9 @@ package org.apache.qpid.test.unit.ack;
import org.apache.qpid.client.AMQDestination;
import org.apache.qpid.client.AMQSession;
-import org.apache.qpid.client.JMSAMQException;
import org.apache.qpid.client.failover.FailoverException;
+import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.Session;
@@ -150,7 +150,7 @@ public class AcknowledgeOnMessageTest ex
{
_consumer.close();
}
- catch (JMSAMQException amqe)
+ catch (JMSException amqe)
{
if (amqe.getLinkedException() instanceof FailoverException)
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]