summaryrefslogtreecommitdiff
path: root/java/client
diff options
context:
space:
mode:
authorRupert Smith <rupertlssmith@apache.org>2007-05-21 15:11:23 +0000
committerRupert Smith <rupertlssmith@apache.org>2007-05-21 15:11:23 +0000
commit625e140b590838df60d603f42d552a9275aae2ca (patch)
tree6b0acb350f3ead0da52b0301bfee74101d6bb7d4 /java/client
parent21d2df094acb8530b2fb902b5ed9a1d7db8463fd (diff)
downloadqpid-python-625e140b590838df60d603f42d552a9275aae2ca.tar.gz
Refactored exceptions to have single constructors and made room for wrapped causes.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@540165 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/client')
-rw-r--r--java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java23
-rw-r--r--java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java25
-rw-r--r--java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java25
-rw-r--r--java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java25
-rw-r--r--java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java25
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQConnection.java37
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/AMQSession.java10
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java10
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java19
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java2
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/message/UnexpectedBodyReceivedException.java45
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java6
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java13
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java4
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java2
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/state/IllegalStateTransitionException.java53
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java2
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java11
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java2
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java2
-rw-r--r--java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java12
-rw-r--r--java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java10
29 files changed, 100 insertions, 293 deletions
diff --git a/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java b/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java
index f3b21e3c64..69960e54e5 100644
--- a/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java
+++ b/java/client/example/src/main/java/org/apache/qpid/example/publisher/FileMessageFactory.java
@@ -6,9 +6,9 @@
* 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
@@ -19,12 +19,13 @@
package org.apache.qpid.example.publisher;
-import org.apache.qpid.example.shared.FileUtils;
-import org.apache.qpid.example.shared.Statics;
-
import java.io.*;
+
import javax.jms.*;
+import org.apache.qpid.example.shared.FileUtils;
+import org.apache.qpid.example.shared.Statics;
+
public class FileMessageFactory
{
protected final Session _session;
@@ -47,8 +48,7 @@ public class FileMessageFactory
}
catch (IOException e)
{
- MessageFactoryException mfe = new MessageFactoryException(e.toString());
- mfe.initCause(e);
+ MessageFactoryException mfe = new MessageFactoryException(e.toString(), e);
throw mfe;
}
}
@@ -64,7 +64,8 @@ public class FileMessageFactory
{
TextMessage msg = _session.createTextMessage();
msg.setText(_payload);
- msg.setStringProperty(Statics.FILENAME_PROPERTY,new File(_filename).getName());
+ msg.setStringProperty(Statics.FILENAME_PROPERTY, new File(_filename).getName());
+
return msg;
}
@@ -79,6 +80,7 @@ public class FileMessageFactory
{
TextMessage msg = session.createTextMessage();
msg.setText(textMsg);
+
return msg;
}
@@ -116,6 +118,7 @@ public class FileMessageFactory
catch (JMSException e)
{
e.printStackTrace(System.out);
+
return e.toString();
}
}
@@ -124,13 +127,13 @@ public class FileMessageFactory
{
try
{
- return m instanceof TextMessage && ((TextMessage) m).getText().equals(s);
+ return (m instanceof TextMessage) && ((TextMessage) m).getText().equals(s);
}
catch (JMSException e)
{
e.printStackTrace(System.out);
+
return false;
}
}
}
-
diff --git a/java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java b/java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java
index 0a4231c977..d709da6432 100644
--- a/java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java
+++ b/java/client/example/src/main/java/org/apache/qpid/example/publisher/MessageFactoryException.java
@@ -22,33 +22,8 @@ package org.apache.qpid.example.publisher;
public class MessageFactoryException extends Exception
{
-
- private int _errorCode;
-
- public MessageFactoryException(String message)
- {
- super(message);
- }
-
public MessageFactoryException(String msg, Throwable t)
{
super(msg, t);
}
-
- public MessageFactoryException(int errorCode, String msg, Throwable t)
- {
- super(msg + " [error code " + errorCode + ']', t);
- _errorCode = errorCode;
- }
-
- public MessageFactoryException(int errorCode, String msg)
- {
- super(msg + " [error code " + errorCode + ']');
- _errorCode = errorCode;
- }
-
- public int getErrorCode()
- {
- return _errorCode;
- }
}
diff --git a/java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java b/java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java
index 399cbc9427..245008b68a 100644
--- a/java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java
+++ b/java/client/example/src/main/java/org/apache/qpid/example/publisher/UndeliveredMessageException.java
@@ -25,33 +25,8 @@ package org.apache.qpid.example.publisher;
*/
public class UndeliveredMessageException extends Exception
{
-
- private int _errorCode;
-
- public UndeliveredMessageException(String message)
- {
- super(message);
- }
-
public UndeliveredMessageException(String msg, Throwable t)
{
super(msg, t);
}
-
- public UndeliveredMessageException(int errorCode, String msg, Throwable t)
- {
- super(msg + " [error code " + errorCode + ']', t);
- _errorCode = errorCode;
- }
-
- public UndeliveredMessageException(int errorCode, String msg)
- {
- super(msg + " [error code " + errorCode + ']');
- _errorCode = errorCode;
- }
-
- public int getErrorCode()
- {
- return _errorCode;
- }
}
diff --git a/java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java b/java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java
index 6eb847ea9d..1a3d596a24 100644
--- a/java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java
+++ b/java/client/example/src/main/java/org/apache/qpid/example/shared/ConnectionException.java
@@ -22,33 +22,8 @@ package org.apache.qpid.example.shared;
public class ConnectionException extends Exception
{
-
- private int _errorCode;
-
- public ConnectionException(String message)
- {
- super(message);
- }
-
public ConnectionException(String msg, Throwable t)
{
super(msg, t);
}
-
- public ConnectionException(int errorCode, String msg, Throwable t)
- {
- super(msg + " [error code " + errorCode + ']', t);
- _errorCode = errorCode;
- }
-
- public ConnectionException(int errorCode, String msg)
- {
- super(msg + " [error code " + errorCode + ']');
- _errorCode = errorCode;
- }
-
- public int getErrorCode()
- {
- return _errorCode;
- }
}
diff --git a/java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java b/java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java
index bf805ab817..2987a9559b 100644
--- a/java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java
+++ b/java/client/example/src/main/java/org/apache/qpid/example/shared/ContextException.java
@@ -22,33 +22,8 @@ package org.apache.qpid.example.shared;
public class ContextException extends Exception
{
-
- private int _errorCode;
-
- public ContextException(String message)
- {
- super(message);
- }
-
public ContextException(String msg, Throwable t)
{
super(msg, t);
}
-
- public ContextException(int errorCode, String msg, Throwable t)
- {
- super(msg + " [error code " + errorCode + ']', t);
- _errorCode = errorCode;
- }
-
- public ContextException(int errorCode, String msg)
- {
- super(msg + " [error code " + errorCode + ']');
- _errorCode = errorCode;
- }
-
- public int getErrorCode()
- {
- return _errorCode;
- }
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java b/java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java
index b6fbb6c6bf..6bae0166d1 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQAuthenticationException.java
@@ -35,8 +35,8 @@ import org.apache.qpid.protocol.AMQConstant;
*/
public class AMQAuthenticationException extends AMQException
{
- public AMQAuthenticationException(AMQConstant error, String msg)
+ public AMQAuthenticationException(AMQConstant error, String msg, Throwable cause)
{
- super(error, msg);
+ super(error, msg, cause);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
index 347f5728e2..2c92cfb85e 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
@@ -65,6 +65,7 @@ import org.apache.qpid.jms.Connection;
import org.apache.qpid.jms.ConnectionListener;
import org.apache.qpid.jms.ConnectionURL;
import org.apache.qpid.jms.FailoverPolicy;
+import org.apache.qpid.protocol.AMQConstant;
import org.apache.qpid.url.URLSyntaxException;
public class AMQConnection extends Closeable implements Connection, QueueConnection, TopicConnection, Referenceable
@@ -96,8 +97,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
private AMQProtocolHandler _protocolHandler;
/** Maps from session id (Integer) to AMQSession instance */
- private final Map<Integer,AMQSession> _sessions = new LinkedHashMap<Integer,AMQSession>();
-
+ private final Map<Integer, AMQSession> _sessions = new LinkedHashMap<Integer, AMQSession>();
private String _clientName;
@@ -225,6 +225,10 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
this(new AMQConnectionURL(connection), sslConfig);
}
+ /**
+ * @todo Some horrible stuff going on here with setting exceptions to be non-null to detect if an exception
+ * was thrown during the connection! Intention not clear. Use a flag anyway, not exceptions... Will fix soon.
+ */
public AMQConnection(ConnectionURL connectionURL, SSLConfiguration sslConfig) throws AMQException
{
if (_logger.isInfoEnabled())
@@ -321,16 +325,20 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
message = "Unable to Connect";
}
- AMQException e = new AMQConnectionFailureException(message);
+ AMQException e = new AMQConnectionFailureException(message, null);
if (lastException != null)
{
if (lastException instanceof UnresolvedAddressException)
{
- e = new AMQUnresolvedAddressException(message, _failoverPolicy.getCurrentBrokerDetails().toString());
+ e = new AMQUnresolvedAddressException(message, _failoverPolicy.getCurrentBrokerDetails().toString(),
+ null);
}
- e.initCause(lastException);
+ if (e.getCause() != null)
+ {
+ e.initCause(lastException);
+ }
}
throw e;
@@ -509,7 +517,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
AMQSession session =
new AMQSession(AMQConnection.this, channelId, transacted, acknowledgeMode, prefetchHigh,
prefetchLow);
- //_protocolHandler.addSessionByChannel(channelId, session);
+ // _protocolHandler.addSessionByChannel(channelId, session);
registerSession(channelId, session);
boolean success = false;
@@ -590,7 +598,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
catch (AMQException e)
{
deregisterSession(channelId);
- throw new AMQException("Error reopening channel " + channelId + " after failover: " + e, e);
+ throw new AMQException(null, "Error reopening channel " + channelId + " after failover: " + e, e);
}
}
@@ -1047,7 +1055,6 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
*/
public void exceptionReceived(Throwable cause)
{
-
if (_logger.isDebugEnabled())
{
_logger.debug("exceptionReceived done by:" + Thread.currentThread().getName(), cause);
@@ -1060,11 +1067,18 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
}
else
{
+ AMQConstant code = null;
+
if (cause instanceof AMQException)
{
+ code = ((AMQException) cause).getErrorCode();
+ }
+
+ if (code != null)
+ {
je =
- new JMSException(Integer.toString(((AMQException) cause).getErrorCode().getCode()),
- "Exception thrown against " + toString() + ": " + cause);
+ new JMSException(Integer.toString(code.getCode()), "Exception thrown against " + toString() + ": "
+ + cause);
}
else
{
@@ -1135,7 +1149,7 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
for (Iterator it = sessions.iterator(); it.hasNext();)
{
AMQSession s = (AMQSession) it.next();
- //_protocolHandler.addSessionByChannel(s.getChannelId(), s);
+ // _protocolHandler.addSessionByChannel(s.getChannelId(), s);
reopenChannel(s.getChannelId(), s.getDefaultPrefetchHigh(), s.getDefaultPrefetchLow(), s.getTransacted());
s.resubscribe();
}
@@ -1223,7 +1237,6 @@ public class AMQConnection extends Closeable implements Connection, QueueConnect
_taskPool.execute(task);
}
-
public AMQSession getSession(int channelId)
{
return _sessions.get(channelId);
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java b/java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java
index 54d5a0426f..08867b5de7 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQNoConsumersException.java
@@ -33,8 +33,8 @@ import org.apache.qpid.protocol.AMQConstant;
*/
public class AMQNoConsumersException extends AMQUndeliveredException
{
- public AMQNoConsumersException(String msg, Object bounced)
+ public AMQNoConsumersException(String msg, Object bounced, Throwable cause)
{
- super(AMQConstant.NO_CONSUMERS, msg, bounced);
+ super(AMQConstant.NO_CONSUMERS, msg, bounced, cause);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java b/java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java
index a314101acf..42ed9c3df7 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQNoRouteException.java
@@ -33,8 +33,8 @@ import org.apache.qpid.protocol.AMQConstant;
*/
public class AMQNoRouteException extends AMQUndeliveredException
{
- public AMQNoRouteException(String msg, Object bounced)
+ public AMQNoRouteException(String msg, Object bounced, Throwable cause)
{
- super(AMQConstant.NO_ROUTE, msg, bounced);
+ super(AMQConstant.NO_ROUTE, msg, bounced, cause);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
index b7615c5b7b..8796a225ba 100644
--- a/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/AMQSession.java
@@ -781,7 +781,7 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
}
else
{
- amqe = new AMQException("Closing session forcibly", e);
+ amqe = new AMQException(null, "Closing session forcibly", e);
}
_connection.deregisterSession(_channelId);
closeProducersAndConsumers(amqe);
@@ -1928,15 +1928,15 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
//@TODO should this be moved to an exception handler of sorts. Somewhere errors are converted to correct execeptions.
if (errorCode == AMQConstant.NO_CONSUMERS)
{
- _connection.exceptionReceived(new AMQNoConsumersException("Error: " + reason, bouncedMessage));
+ _connection.exceptionReceived(new AMQNoConsumersException("Error: " + reason, bouncedMessage, null));
}
else if (errorCode == AMQConstant.NO_ROUTE)
{
- _connection.exceptionReceived(new AMQNoRouteException("Error: " + reason, bouncedMessage));
+ _connection.exceptionReceived(new AMQNoRouteException("Error: " + reason, bouncedMessage, null));
}
else
{
- _connection.exceptionReceived(new AMQUndeliveredException(errorCode, "Error: " + reason, bouncedMessage));
+ _connection.exceptionReceived(new AMQUndeliveredException(errorCode, "Error: " + reason, bouncedMessage, null));
}
}
@@ -2118,7 +2118,7 @@ public class AMQSession extends Closeable implements Session, QueueSession, Topi
}
catch (JMSException e) //thrown by getMessageSelector
{
- throw new AMQException(e.getMessage(), e);
+ throw new AMQException(null, e.getMessage(), e);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java b/java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java
index 844ecbe743..00eac7f2af 100644
--- a/java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/failover/FailoverHandler.java
@@ -93,11 +93,11 @@ public class FailoverHandler implements Runnable
_amqProtocolHandler.setStateManager(existingStateManager);
if (_host != null)
{
- _amqProtocolHandler.getConnection().exceptionReceived(new AMQDisconnectedException("Redirect was vetoed by client"));
+ _amqProtocolHandler.getConnection().exceptionReceived(new AMQDisconnectedException("Redirect was vetoed by client", null));
}
else
{
- _amqProtocolHandler.getConnection().exceptionReceived(new AMQDisconnectedException("Failover was vetoed by client"));
+ _amqProtocolHandler.getConnection().exceptionReceived(new AMQDisconnectedException("Failover was vetoed by client", null));
}
_amqProtocolHandler.getFailoverLatch().countDown();
_amqProtocolHandler.setFailoverLatch(null);
@@ -124,7 +124,7 @@ public class FailoverHandler implements Runnable
_amqProtocolHandler.setStateManager(existingStateManager);
_amqProtocolHandler.getConnection().exceptionReceived(
new AMQDisconnectedException("Server closed connection and no failover " +
- "was successful"));
+ "was successful", null));
}
else
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java
index f62baf2c3a..fbf4d96647 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ChannelCloseMethodHandler.java
@@ -70,27 +70,27 @@ public class ChannelCloseMethodHandler implements StateAwareMethodListener
}
if (errorCode == AMQConstant.NO_CONSUMERS)
{
- throw new AMQNoConsumersException("Error: " + reason, null);
+ throw new AMQNoConsumersException("Error: " + reason, null, null);
}
else if (errorCode == AMQConstant.NO_ROUTE)
{
- throw new AMQNoRouteException("Error: " + reason, null);
+ throw new AMQNoRouteException("Error: " + reason, null, null);
}
else if (errorCode == AMQConstant.INVALID_ARGUMENT)
{
_logger.debug("Broker responded with Invalid Argument.");
- throw new org.apache.qpid.AMQInvalidArgumentException(String.valueOf(reason));
+ throw new org.apache.qpid.AMQInvalidArgumentException(String.valueOf(reason), null);
}
else if (errorCode == AMQConstant.INVALID_ROUTING_KEY)
{
_logger.debug("Broker responded with Invalid Routing Key.");
- throw new AMQInvalidRoutingKeyException(String.valueOf(reason));
+ throw new AMQInvalidRoutingKeyException(String.valueOf(reason), null);
}
else
{
- throw new AMQChannelClosedException(errorCode, "Error: " + reason);
+ throw new AMQChannelClosedException(errorCode, "Error: " + reason, null);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java
index 9c8e9188ec..d8153f9c97 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionCloseMethodHandler.java
@@ -77,14 +77,14 @@ public class ConnectionCloseMethodHandler implements StateAwareMethodListener
//todo this is a bit of a fudge (could be conssidered such as each new connection needs a new state manager or at least a fresh state.
stateManager.changeState(AMQState.CONNECTION_NOT_STARTED);
- throw new AMQAuthenticationException(errorCode, reason == null ? null : reason.toString());
+ throw new AMQAuthenticationException(errorCode, reason == null ? null : reason.toString(), null);
}
else
{
_logger.info("Connection close received with error code " + errorCode);
- throw new AMQConnectionClosedException(errorCode, "Error: " + reason);
+ throw new AMQConnectionClosedException(errorCode, "Error: " + reason, null);
}
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java
index ab6acffeaf..b7776705fe 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionSecureMethodHandler.java
@@ -46,7 +46,7 @@ public class ConnectionSecureMethodHandler implements StateAwareMethodListener
SaslClient client = protocolSession.getSaslClient();
if (client == null)
{
- throw new AMQException("No SASL client set up - cannot proceed with authentication");
+ throw new AMQException(null, "No SASL client set up - cannot proceed with authentication", null);
}
ConnectionSecureBody body = (ConnectionSecureBody) evt.getMethod();
@@ -65,7 +65,7 @@ public class ConnectionSecureMethodHandler implements StateAwareMethodListener
}
catch (SaslException e)
{
- throw new AMQException("Error processing SASL challenge: " + e, e);
+ throw new AMQException(null, "Error processing SASL challenge: " + e, e);
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
index 28c0c4f3c9..157128aebc 100644
--- a/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/handler/ConnectionStartMethodHandler.java
@@ -92,7 +92,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
if (body.mechanisms == null)
{
- throw new AMQException("mechanism not specified in ConnectionStart method frame");
+ throw new AMQException(null, "mechanism not specified in ConnectionStart method frame", null);
}
else
{
@@ -102,7 +102,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
if (mechanism == null)
{
- throw new AMQException("No supported security mechanism found, passed: " + new String(body.mechanisms));
+ throw new AMQException(null, "No supported security mechanism found, passed: " + new String(body.mechanisms), null);
}
byte[] saslResponse;
@@ -113,10 +113,9 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
createCallbackHandler(mechanism, protocolSession));
if (sc == null)
{
- throw new AMQException(
- "Client SASL configuration error: no SaslClient could be created for mechanism " + mechanism
+ throw new AMQException(null, "Client SASL configuration error: no SaslClient could be created for mechanism " + mechanism
+ ". Please ensure all factories are registered. See DynamicSaslRegistrar for "
- + " details of how to register non-standard SASL client providers.");
+ + " details of how to register non-standard SASL client providers.", null);
}
protocolSession.setSaslClient(sc);
@@ -125,12 +124,12 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
catch (SaslException e)
{
protocolSession.setSaslClient(null);
- throw new AMQException("Unable to create SASL client: " + e, e);
+ throw new AMQException(null, "Unable to create SASL client: " + e, e);
}
if (body.locales == null)
{
- throw new AMQException("Locales is not defined in Connection Start method");
+ throw new AMQException(null, "Locales is not defined in Connection Start method", null);
}
final String locales = new String(body.locales, "utf8");
@@ -142,7 +141,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
}
else
{
- throw new AMQException("No locales sent from server, passed: " + locales);
+ throw new AMQException(null, "No locales sent from server, passed: " + locales, null);
}
stateManager.changeState(AMQState.CONNECTION_NOT_TUNED);
@@ -170,7 +169,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
}
catch (UnsupportedEncodingException e)
{
- throw new AMQException("Unable to decode data: " + e, e);
+ throw new AMQException(null, "Unable to decode data: " + e, e);
}
}
else
@@ -235,7 +234,7 @@ public class ConnectionStartMethodHandler implements StateAwareMethodListener
}
catch (Exception e)
{
- throw new AMQException("Unable to create callback handler: " + e, e);
+ throw new AMQException(null, "Unable to create callback handler: " + e, e);
}
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
index 63b16ebbd6..ae64ac987e 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/JMSMapMessage.java
@@ -67,7 +67,7 @@ public class JMSMapMessage extends AbstractBytesTypedMessage implements javax.jm
}
catch (JMSException je)
{
- throw new AMQException("Error populating MapMessage from ByteBuffer", je);
+ throw new AMQException(null, "Error populating MapMessage from ByteBuffer", je);
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java b/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
index c2015f9e7c..02a8544b52 100644
--- a/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
+++ b/java/client/src/main/java/org/apache/qpid/client/message/MessageFactoryRegistry.java
@@ -99,7 +99,7 @@ public class MessageFactoryRegistry
MessageFactory mf = _mimeShortStringToFactoryMap.get(contentTypeShortString);
if (mf == null)
{
- throw new AMQException("Unsupport MIME type of " + properties.getContentTypeAsString());
+ throw new AMQException(null, "Unsupport MIME type of " + properties.getContentTypeAsString(), null);
}
else
{
@@ -117,7 +117,7 @@ public class MessageFactoryRegistry
MessageFactory mf = _mimeStringToFactoryMap.get(mimeType);
if (mf == null)
{
- throw new AMQException("Unsupport MIME type of " + mimeType);
+ throw new AMQException(null, "Unsupport MIME type of " + mimeType, null);
}
else
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/message/UnexpectedBodyReceivedException.java b/java/client/src/main/java/org/apache/qpid/client/message/UnexpectedBodyReceivedException.java
deleted file mode 100644
index 1f61a661d4..0000000000
--- a/java/client/src/main/java/org/apache/qpid/client/message/UnexpectedBodyReceivedException.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *
- * 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.message;
-
-import org.apache.qpid.AMQException;
-import org.apache.qpid.protocol.AMQConstant;
-
-/**
- * @todo Not used! Delete!
- */
-public class UnexpectedBodyReceivedException extends AMQException
-{
- public UnexpectedBodyReceivedException(String msg, Throwable t)
- {
- super(msg, t);
- }
-
- public UnexpectedBodyReceivedException(String msg)
- {
- super(msg);
- }
-
- public UnexpectedBodyReceivedException(AMQConstant errorCode, String msg)
- {
- super(errorCode, msg);
- }
-}
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
index addef94215..5687ad2658 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolHandler.java
@@ -195,7 +195,7 @@ public class AMQProtocolHandler extends IoHandlerAdapter
_logger.info("sessionClose() not allowed to failover");
_connection.exceptionReceived(
new AMQDisconnectedException("Server closed connection and reconnection " +
- "not permitted."));
+ "not permitted.", null));
}
else
{
@@ -263,7 +263,7 @@ public class AMQProtocolHandler extends IoHandlerAdapter
_logger.error("Exception caught by protocol handler: " + cause, cause);
// we notify the state manager of the error in case we have any clients waiting on a state
// change. Those "waiters" will be interrupted and can handle the exception
- AMQException amqe = new AMQException("Protocol handler error: " + cause, cause);
+ AMQException amqe = new AMQException(null, "Protocol handler error: " + cause, cause);
propagateExceptionToWaiters(amqe);
_connection.exceptionReceived(cause);
}
@@ -334,7 +334,7 @@ public class AMQProtocolHandler extends IoHandlerAdapter
}
if (!wasAnyoneInterested)
{
- throw new AMQException("AMQMethodEvent " + evt + " was not processed by any listener. Listeners:" + _frameListeners);
+ throw new AMQException(null, "AMQMethodEvent " + evt + " was not processed by any listener. Listeners:" + _frameListeners, null);
}
}
catch (AMQException e)
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
index 386aae4ad1..f691637cdc 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/AMQProtocolSession.java
@@ -238,13 +238,12 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession
UnprocessedMessage msg = (UnprocessedMessage) _channelId2UnprocessedMsgMap.get(channelId);
if (msg == null)
{
- throw new AMQException("Error: received content header without having received a BasicDeliver frame first");
+ throw new AMQException(null, "Error: received content header without having received a BasicDeliver frame first", null);
}
if (msg.getContentHeader() != null)
{
- throw new AMQException(
- "Error: received duplicate content header or did not receive correct number of content body frames");
+ throw new AMQException(null, "Error: received duplicate content header or did not receive correct number of content body frames", null);
}
msg.setContentHeader(contentHeader);
@@ -259,13 +258,13 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession
UnprocessedMessage msg = (UnprocessedMessage) _channelId2UnprocessedMsgMap.get(channelId);
if (msg == null)
{
- throw new AMQException("Error: received content body without having received a JMSDeliver frame first");
+ throw new AMQException(null, "Error: received content body without having received a JMSDeliver frame first", null);
}
if (msg.getContentHeader() == null)
{
_channelId2UnprocessedMsgMap.remove(channelId);
- throw new AMQException("Error: received content body without having received a ContentHeader frame first");
+ throw new AMQException(null, "Error: received content body without having received a ContentHeader frame first", null);
}
/*try
@@ -365,11 +364,11 @@ public class AMQProtocolSession implements AMQVersionAwareProtocolSession
final AMQSession session = getSession(channelId);
try
{
- session.closed(new AMQException(code, text));
+ session.closed(new AMQException(code, text, null));
}
catch (JMSException e)
{
- throw new AMQException("JMSException received while closing session", e);
+ throw new AMQException(null, "JMSException received while closing session", e);
}
return true;
diff --git a/java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java b/java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java
index 85f98eab69..4691d48f29 100644
--- a/java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java
+++ b/java/client/src/main/java/org/apache/qpid/client/protocol/BlockingMethodFrameListener.java
@@ -109,7 +109,7 @@ public abstract class BlockingMethodFrameListener implements AMQMethodListener
_lock.wait(timeout);
if (!_ready)
{
- _error = new AMQTimeoutException("Server did not respond in a timely fashion");
+ _error = new AMQTimeoutException("Server did not respond in a timely fashion", null);
_ready = true;
}
}
@@ -138,7 +138,7 @@ public abstract class BlockingMethodFrameListener implements AMQMethodListener
}
else
{
- throw new AMQException("Woken up due to " + _error.getClass(), _error);
+ throw new AMQException(null, "Woken up due to " + _error.getClass(), _error);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java b/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java
index 0f43115841..c995bf40da 100644
--- a/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java
+++ b/java/client/src/main/java/org/apache/qpid/client/state/AMQStateManager.java
@@ -248,7 +248,7 @@ public class AMQStateManager implements AMQMethodListener
if (_currentState != s)
{
_logger.warn("State not achieved within permitted time. Current state " + _currentState + ", desired state: " + s);
- throw new AMQException("State not achieved within permitted time. Current state " + _currentState + ", desired state: " + s);
+ throw new AMQException(null, "State not achieved within permitted time. Current state " + _currentState + ", desired state: " + s, null);
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/state/IllegalStateTransitionException.java b/java/client/src/main/java/org/apache/qpid/client/state/IllegalStateTransitionException.java
deleted file mode 100644
index 41fa1ba704..0000000000
--- a/java/client/src/main/java/org/apache/qpid/client/state/IllegalStateTransitionException.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*
- *
- * 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.state;
-
-import org.apache.qpid.AMQException;
-
-/**
- * @todo Not an AMQP exception as no status code.
- *
- * @todo Not used! Delete.
- */
-public class IllegalStateTransitionException extends AMQException
-{
- private AMQState _originalState;
-
- private Class _frame;
-
- public IllegalStateTransitionException(AMQState originalState, Class frame)
- {
- super("No valid state transition defined for receiving frame " + frame +
- " from state " + originalState);
- _originalState = originalState;
- _frame = frame;
- }
-
- public AMQState getOriginalState()
- {
- return _originalState;
- }
-
- public Class getFrameClass()
- {
- return _frame;
- }
-}
diff --git a/java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java b/java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java
index 8a0b5e7d84..1fd657c5fb 100644
--- a/java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java
+++ b/java/client/src/main/java/org/apache/qpid/client/state/StateWaiter.java
@@ -76,7 +76,7 @@ public class StateWaiter implements StateListener
}
else
{
- throw new AMQException("Error: " + _throwable, _throwable); // FIXME: this will wrap FailoverException in throwable which will prevent it being caught.
+ throw new AMQException(null, "Error: " + _throwable, _throwable); // FIXME: this will wrap FailoverException in throwable which will prevent it being caught.
}
}
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java b/java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java
index da16baaad9..6e47e2ce28 100644
--- a/java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/transport/AMQNoTransportForProtocolException.java
@@ -31,19 +31,16 @@ import org.apache.qpid.jms.BrokerDetails;
* <tr><th> Responsibilities <th> Collaborations
* <tr><td> Represent absence of a transport medium.
* </table>
+ *
+ * @todo Error code never used. This is not an AMQException.
*/
public class AMQNoTransportForProtocolException extends AMQTransportConnectionException
{
BrokerDetails _details;
- public AMQNoTransportForProtocolException(BrokerDetails details)
- {
- this(details, "No Transport exists for specified broker protocol");
- }
-
- public AMQNoTransportForProtocolException(BrokerDetails details, String message)
+ public AMQNoTransportForProtocolException(BrokerDetails details, String message, Throwable cause)
{
- super(null, message, null);
+ super(null, message, cause);
_details = details;
}
diff --git a/java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java b/java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java
index 24b4e03b39..6bef6216bd 100644
--- a/java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/transport/AMQTransportConnectionException.java
@@ -31,6 +31,8 @@ import org.apache.qpid.protocol.AMQConstant;
* <tr><th> Responsibilities <th> Collaborations
* <tr><td> Represent failure to connect through the transport medium.
* </table>
+ *
+ * @todo Error code never used. This is not an AMQException.
*/
public class AMQTransportConnectionException extends AMQException
{
diff --git a/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java b/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java
index 0bc83e9804..b9193ce14e 100644
--- a/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java
+++ b/java/client/src/main/java/org/apache/qpid/client/transport/TransportConnection.java
@@ -67,7 +67,7 @@ public class TransportConnection
if (transport == -1)
{
- throw new AMQNoTransportForProtocolException(details);
+ throw new AMQNoTransportForProtocolException(details, null, null);
}
if (transport == _currentInstance)
diff --git a/java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java b/java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java
index 1791e7ede3..1818132be0 100644
--- a/java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java
+++ b/java/client/src/main/java/org/apache/qpid/client/vmbroker/AMQVMBrokerCreationException.java
@@ -30,21 +30,13 @@ import org.apache.qpid.protocol.AMQConstant;
* <tr><th> Responsibilities <th> Collaborations
* <tr><td> Represent failure to create an in VM broker.
* </table>
+ *
+ * @todo Error code never used. This is not an AMQException.
*/
public class AMQVMBrokerCreationException extends AMQTransportConnectionException
{
private int _port;
- /**
- * @param port
- *
- * @deprecated
- */
- public AMQVMBrokerCreationException(int port)
- {
- this(null, port, "Unable to create vm broker", null);
- }
-
public AMQVMBrokerCreationException(AMQConstant errorCode, int port, String message, Throwable cause)
{
super(errorCode, message, cause);
diff --git a/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java b/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java
index 5e45d1d537..4a114321aa 100644
--- a/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java
+++ b/java/client/src/test/java/org/apache/qpid/test/unit/client/channelclose/ChannelCloseMethodHandlerNoCloseOk.java
@@ -67,27 +67,27 @@ public class ChannelCloseMethodHandlerNoCloseOk implements StateAwareMethodListe
_logger.error("Channel close received with errorCode " + errorCode + ", and reason " + reason);
if (errorCode == AMQConstant.NO_CONSUMERS)
{
- throw new AMQNoConsumersException("Error: " + reason, null);
+ throw new AMQNoConsumersException("Error: " + reason, null, null);
}
else if (errorCode == AMQConstant.NO_ROUTE)
{
- throw new AMQNoRouteException("Error: " + reason, null);
+ throw new AMQNoRouteException("Error: " + reason, null, null);
}
else if (errorCode == AMQConstant.INVALID_ARGUMENT)
{
_logger.debug("Broker responded with Invalid Argument.");
- throw new AMQInvalidArgumentException(String.valueOf(reason));
+ throw new AMQInvalidArgumentException(String.valueOf(reason), null);
}
else if (errorCode == AMQConstant.INVALID_ROUTING_KEY)
{
_logger.debug("Broker responded with Invalid Routing Key.");
- throw new AMQInvalidRoutingKeyException(String.valueOf(reason));
+ throw new AMQInvalidRoutingKeyException(String.valueOf(reason), null);
}
else
{
- throw new AMQChannelClosedException(errorCode, "Error: " + reason);
+ throw new AMQChannelClosedException(errorCode, "Error: " + reason, null);
}
}