diff options
| author | Gordon Sim <gsim@apache.org> | 2007-01-25 18:24:48 +0000 |
|---|---|---|
| committer | Gordon Sim <gsim@apache.org> | 2007-01-25 18:24:48 +0000 |
| commit | f90210810795926ce7a6111b1d4dac9b81df78fa (patch) | |
| tree | 181fad6ad1c3aa59334b09e94af962432e1e02bf /java/common | |
| parent | a1bf3981115c397e55cd7fdc195381a10d5f940c (diff) | |
| download | qpid-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')
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); + } } |
