summaryrefslogtreecommitdiff
path: root/java/common
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2007-01-25 18:24:48 +0000
committerGordon Sim <gsim@apache.org>2007-01-25 18:24:48 +0000
commitf90210810795926ce7a6111b1d4dac9b81df78fa (patch)
tree181fad6ad1c3aa59334b09e94af962432e1e02bf /java/common
parenta1bf3981115c397e55cd7fdc195381a10d5f940c (diff)
downloadqpid-python-f90210810795926ce7a6111b1d4dac9b81df78fa.tar.gz
Improved channel/connection exception handling.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/branches/qpid.0-9@499880 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common')
-rw-r--r--java/common/src/main/java/org/apache/qpid/AMQConnectionException.java40
-rw-r--r--java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java9
-rw-r--r--java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java13
3 files changed, 60 insertions, 2 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java b/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java
index 6254d80f32..93754dbee9 100644
--- a/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java
+++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java
@@ -21,10 +21,46 @@
package org.apache.qpid;
+import org.apache.qpid.framing.ConnectionCloseBody;
+
public class AMQConnectionException extends AMQException
{
- public AMQConnectionException(String message)
+ private final int _classId;
+ private final int _methodId;
+ /* AMQP version for which exception ocurred */
+ private final byte major;
+ private final byte minor;
+
+ public AMQConnectionException(int errorCode, String msg, int classId, int methodId, byte major, byte minor, Throwable t)
+ {
+ super(errorCode, msg, t);
+ _classId = classId;
+ _methodId = methodId;
+ this.major = major;
+ this.minor = minor;
+ }
+
+ public AMQConnectionException(int errorCode, String msg, int classId, int methodId, byte major, byte minor)
+ {
+ super(errorCode, msg);
+ _classId = classId;
+ _methodId = methodId;
+ this.major = major;
+ this.minor = minor;
+ }
+
+ public ConnectionCloseBody getCloseMethodBody()
+ {
+ return ConnectionCloseBody.createMethodBody(major, minor, _classId, _methodId, getErrorCode(), getMessage());
+ }
+
+ public int getClassId()
{
- super(message);
+ return _classId;
}
+
+ public int getMethodId(){
+ return _methodId;
+ }
+
}
diff --git a/java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java b/java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java
new file mode 100644
index 0000000000..0979598cdb
--- /dev/null
+++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionFailureException.java
@@ -0,0 +1,9 @@
+package org.apache.qpid;
+
+public class AMQConnectionFailureException extends AMQException
+{
+ public AMQConnectionFailureException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java
index 40cd041ebf..e140a9b334 100644
--- a/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java
+++ b/java/common/src/main/java/org/apache/qpid/framing/AMQMethodBody.java
@@ -22,6 +22,7 @@ package org.apache.qpid.framing;
import org.apache.mina.common.ByteBuffer;
import org.apache.qpid.AMQChannelException;
+import org.apache.qpid.AMQConnectionException;
public abstract class AMQMethodBody extends AMQBody
{
@@ -103,4 +104,16 @@ public abstract class AMQMethodBody extends AMQBody
{
return new AMQChannelException(code, message, getClazz(), getMethod(), major, minor, cause);
}
+
+ public AMQConnectionException getConnectionException(int code, String message)
+ {
+ return new AMQConnectionException(code, message, getClazz(), getMethod(), major, minor);
+ }
+
+
+
+ public AMQConnectionException getConnectionException(int code, String message, Throwable cause)
+ {
+ return new AMQConnectionException(code, message, getClazz(), getMethod(), major, minor, cause);
+ }
}