diff options
author | Martin Ritchie <ritchiem@apache.org> | 2007-02-16 13:00:39 +0000 |
---|---|---|
committer | Martin Ritchie <ritchiem@apache.org> | 2007-02-16 13:00:39 +0000 |
commit | 267709b3bb825f6cfb652510307687bc67f3dbb0 (patch) | |
tree | 4a87d5e6b71ece9a51c3c46e5a6748d1d26f210d /java/common/src | |
parent | 0c7c587920299fdc5b2639e5ed7efc143a83c532 (diff) | |
download | qpid-python-267709b3bb825f6cfb652510307687bc67f3dbb0.tar.gz |
QPID-11 remove protocol literals from code.
QPID-376 use of getChannel() does not correct handle error cases when null is returned.
Updated AMQMethodBody - to have a convenience method getChannelNotFoundException to be used for QPID-376 when channel is null.
This allows the replyCode NOT_FOUND=404 to be changed to changed easily if required.
QPID-376 - Updated All Handlers to throw channel exception when channel is null.
QPID-11 Updated all handlers to use AMQConstant values rather than hardcoded literals.
- Updated AMQException to use AMQConstant values rather than int to ensure that no more literal values creep back in to the code base. Replaced all usages of int above framing to store replycode with AMQConstant to prevent creep.
Had to create new constants for literals used in code base but not yet part of spec.
405=Already Exists
406=In Use
323=Invalid Routing Key
Remove non spec constant
500=Unknown_Exchange_Name replaced with generic NOT_FOUND
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@508381 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/common/src')
11 files changed, 106 insertions, 41 deletions
diff --git a/java/common/src/main/java/org/apache/qpid/AMQChannelClosedException.java b/java/common/src/main/java/org/apache/qpid/AMQChannelClosedException.java index cd8b40c6da..272933ca04 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQChannelClosedException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQChannelClosedException.java @@ -20,12 +20,14 @@ */ package org.apache.qpid; +import org.apache.qpid.protocol.AMQConstant; + /** * AMQ channel closed exception. */ public class AMQChannelClosedException extends AMQException { - public AMQChannelClosedException(int errorCode, String msg) + public AMQChannelClosedException(AMQConstant errorCode, String msg) { super(errorCode, msg); } diff --git a/java/common/src/main/java/org/apache/qpid/AMQChannelException.java b/java/common/src/main/java/org/apache/qpid/AMQChannelException.java index d1750ebbb5..d8c9b287bd 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQChannelException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQChannelException.java @@ -23,6 +23,7 @@ package org.apache.qpid; import org.apache.qpid.framing.AMQFrame; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ChannelCloseBody; +import org.apache.qpid.protocol.AMQConstant; public class AMQChannelException extends AMQException { @@ -32,7 +33,7 @@ public class AMQChannelException extends AMQException private final byte major; private final byte minor; - public AMQChannelException(int errorCode, String msg, int classId, int methodId, byte major, byte minor, Throwable t) + public AMQChannelException(AMQConstant errorCode, String msg, int classId, int methodId, byte major, byte minor, Throwable t) { super(errorCode, msg, t); _classId = classId; @@ -41,7 +42,7 @@ public class AMQChannelException extends AMQException this.minor = minor; } - public AMQChannelException(int errorCode, String msg, int classId, int methodId, byte major, byte minor) + public AMQChannelException(AMQConstant errorCode, String msg, int classId, int methodId, byte major, byte minor) { super(errorCode, msg); _classId = classId; @@ -52,6 +53,6 @@ public class AMQChannelException extends AMQException public AMQFrame getCloseFrame(int channel) { - return ChannelCloseBody.createAMQFrame(channel, major, minor, _classId, _methodId, getErrorCode(), new AMQShortString(getMessage())); + return ChannelCloseBody.createAMQFrame(channel, major, minor, _classId, _methodId, getErrorCode().getCode(), new AMQShortString(getMessage())); } } diff --git a/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java b/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java index 6ec18bad20..e0ed16a9f0 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionClosedException.java @@ -20,12 +20,14 @@ */ package org.apache.qpid; +import org.apache.qpid.protocol.AMQConstant; + /** * AMQ channel closed exception. */ public class AMQConnectionClosedException extends AMQException { - public AMQConnectionClosedException(int errorCode, String msg) + public AMQConnectionClosedException(AMQConstant errorCode, String msg) { super(errorCode, msg); } 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 c6a874bcf3..c4f80191a3 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQConnectionException.java @@ -24,6 +24,7 @@ package org.apache.qpid; import org.apache.qpid.framing.AMQFrame; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.framing.ConnectionCloseBody; +import org.apache.qpid.protocol.AMQConstant; public class AMQConnectionException extends AMQException { @@ -34,7 +35,7 @@ public class AMQConnectionException extends AMQException private final byte minor; boolean _closeConnetion; - public AMQConnectionException(int errorCode, String msg, int classId, int methodId, byte major, byte minor, Throwable t) + public AMQConnectionException(AMQConstant errorCode, String msg, int classId, int methodId, byte major, byte minor, Throwable t) { super(errorCode, msg, t); _classId = classId; @@ -43,7 +44,7 @@ public class AMQConnectionException extends AMQException this.minor = minor; } - public AMQConnectionException(int errorCode, String msg, int classId, int methodId, byte major, byte minor) + public AMQConnectionException(AMQConstant errorCode, String msg, int classId, int methodId, byte major, byte minor) { super(errorCode, msg); _classId = classId; @@ -56,7 +57,7 @@ public class AMQConnectionException extends AMQException public AMQFrame getCloseFrame(int channel) { - return ConnectionCloseBody.createAMQFrame(channel, major, minor, _classId, _methodId, getErrorCode(), new AMQShortString(getMessage())); + return ConnectionCloseBody.createAMQFrame(channel, major, minor, _classId, _methodId, getErrorCode().getCode(), new AMQShortString(getMessage())); } diff --git a/java/common/src/main/java/org/apache/qpid/AMQException.java b/java/common/src/main/java/org/apache/qpid/AMQException.java index 93c31e4fa8..5c11ec18ca 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQException.java @@ -21,31 +21,36 @@ package org.apache.qpid; import org.apache.log4j.Logger; +import org.apache.qpid.protocol.AMQConstant; /** * Generic AMQ exception. */ public class AMQException extends Exception { - private int _errorCode; + private AMQConstant _errorCode; public AMQException(String message) { super(message); + //fixme This method needs removed and all AMQExceptions need a valid error code + _errorCode = AMQConstant.getConstant(-1); } public AMQException(String msg, Throwable t) { super(msg, t); + //fixme This method needs removed and all AMQExceptions need a valid error code + _errorCode = AMQConstant.getConstant(-1); } - public AMQException(int errorCode, String msg, Throwable t) + public AMQException(AMQConstant errorCode, String msg, Throwable t) { super(msg + " [error code " + errorCode + ']', t); _errorCode = errorCode; } - public AMQException(int errorCode, String msg) + public AMQException(AMQConstant errorCode, String msg) { super(msg + " [error code " + errorCode + ']'); _errorCode = errorCode; @@ -63,13 +68,13 @@ public class AMQException extends Exception logger.error(getMessage(), this); } - public AMQException(Logger logger, int errorCode, String msg) + public AMQException(Logger logger, AMQConstant errorCode, String msg) { this(errorCode, msg); logger.error(getMessage(), this); } - public int getErrorCode() + public AMQConstant getErrorCode() { return _errorCode; } diff --git a/java/common/src/main/java/org/apache/qpid/AMQInvalidRoutingKeyException.java b/java/common/src/main/java/org/apache/qpid/AMQInvalidRoutingKeyException.java new file mode 100644 index 0000000000..3293e2523d --- /dev/null +++ b/java/common/src/main/java/org/apache/qpid/AMQInvalidRoutingKeyException.java @@ -0,0 +1,31 @@ +/* + * 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; + +import org.apache.qpid.protocol.AMQConstant; + +public class AMQInvalidRoutingKeyException extends AMQException +{ + public AMQInvalidRoutingKeyException(String message) + { + super(AMQConstant.INVALID_ROUTING_KEY,message); + } +} diff --git a/java/common/src/main/java/org/apache/qpid/AMQInvalidSelectorException.java b/java/common/src/main/java/org/apache/qpid/AMQInvalidSelectorException.java index dcd039b789..9d003514ad 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQInvalidSelectorException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQInvalidSelectorException.java @@ -26,6 +26,6 @@ public class AMQInvalidSelectorException extends AMQException { public AMQInvalidSelectorException(String message) { - super(AMQConstant.INVALID_SELECTOR.getCode(),message); + super(AMQConstant.INVALID_SELECTOR,message); } } diff --git a/java/common/src/main/java/org/apache/qpid/AMQUndeliveredException.java b/java/common/src/main/java/org/apache/qpid/AMQUndeliveredException.java index 4944ccc371..ad5aff7bb6 100644 --- a/java/common/src/main/java/org/apache/qpid/AMQUndeliveredException.java +++ b/java/common/src/main/java/org/apache/qpid/AMQUndeliveredException.java @@ -20,6 +20,8 @@ */ package org.apache.qpid; +import org.apache.qpid.protocol.AMQConstant; + /** * Generic AMQ exception. */ @@ -27,7 +29,7 @@ public class AMQUndeliveredException extends AMQException { private Object _bounced; - public AMQUndeliveredException(int errorCode, String msg, Object bounced) + public AMQUndeliveredException(AMQConstant errorCode, String msg, Object bounced) { super(errorCode, msg); diff --git a/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java b/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java index 67af0b0b74..958f59191f 100644 --- a/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java +++ b/java/common/src/main/java/org/apache/qpid/configuration/PropertyException.java @@ -22,6 +22,7 @@ package org.apache.qpid.configuration; import org.apache.log4j.Logger; import org.apache.qpid.AMQException; +import org.apache.qpid.protocol.AMQConstant; /** * Indicates an error parsing a property expansion. @@ -38,12 +39,12 @@ public class PropertyException extends AMQException super(msg, t); } - public PropertyException(int errorCode, String msg, Throwable t) + public PropertyException(AMQConstant errorCode, String msg, Throwable t) { super(errorCode, msg, t); } - public PropertyException(int errorCode, String msg) + public PropertyException(AMQConstant errorCode, String msg) { super(errorCode, msg); } @@ -58,7 +59,7 @@ public class PropertyException extends AMQException super(logger, msg); } - public PropertyException(Logger logger, int errorCode, String msg) + public PropertyException(Logger logger, AMQConstant errorCode, String msg) { super(logger, errorCode, msg); } 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 3fa5b150ab..111d9a8f20 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 @@ -23,19 +23,26 @@ package org.apache.qpid.framing; import org.apache.mina.common.ByteBuffer; import org.apache.qpid.AMQChannelException; import org.apache.qpid.AMQConnectionException; +import org.apache.qpid.protocol.AMQConstant; public abstract class AMQMethodBody extends AMQBody { - public static final byte TYPE = 1; - - /** - * AMQP version - */ + public static final byte TYPE = 1; + + /** AMQP version */ protected byte major; protected byte minor; - public byte getMajor() { return major; } - public byte getMinor() { return minor; } - + + public byte getMajor() + { + return major; + } + + public byte getMinor() + { + return minor; + } + public AMQMethodBody(byte major, byte minor) { this.major = major; @@ -45,14 +52,10 @@ public abstract class AMQMethodBody extends AMQBody /** unsigned short */ protected abstract int getBodySize(); - /** - * @return unsigned short - */ + /** @return unsigned short */ protected abstract int getClazz(); - /** - * @return unsigned short - */ + /** @return unsigned short */ protected abstract int getMethod(); protected abstract void writeMethodPayload(ByteBuffer buffer); @@ -90,27 +93,38 @@ public abstract class AMQMethodBody extends AMQBody } /** - * Creates an AMQChannelException for the corresponding body type (a channel exception - * should include the class and method ids of the body it resulted from). + * Creates an AMQChannelException for the corresponding body type (a channel exception should include the class and + * method ids of the body it resulted from). + */ + + /** + * Convenience Method to create a channel not found exception + * + * @param channelId The channel id that is not found + * + * @return new AMQChannelException */ - public AMQChannelException getChannelException(int code, String message) + public AMQChannelException getChannelNotFoundException(int channelId) + { + return getChannelException(AMQConstant.NOT_FOUND, "Channel not found for id:" + channelId); + } + + public AMQChannelException getChannelException(AMQConstant code, String message) { return new AMQChannelException(code, message, getClazz(), getMethod(), major, minor); } - public AMQChannelException getChannelException(int code, String message, Throwable cause) + public AMQChannelException getChannelException(AMQConstant code, String message, Throwable cause) { return new AMQChannelException(code, message, getClazz(), getMethod(), major, minor, cause); } - public AMQConnectionException getConnectionException(int code, String message) + public AMQConnectionException getConnectionException(AMQConstant code, String message) { return new AMQConnectionException(code, message, getClazz(), getMethod(), major, minor); } - - - public AMQConnectionException getConnectionException(int code, String message, Throwable cause) + public AMQConnectionException getConnectionException(AMQConstant code, String message, Throwable cause) { return new AMQConnectionException(code, message, getClazz(), getMethod(), major, minor, cause); } diff --git a/java/common/src/main/java/org/apache/qpid/protocol/AMQConstant.java b/java/common/src/main/java/org/apache/qpid/protocol/AMQConstant.java index a4d90e9ee3..05365de137 100644 --- a/java/common/src/main/java/org/apache/qpid/protocol/AMQConstant.java +++ b/java/common/src/main/java/org/apache/qpid/protocol/AMQConstant.java @@ -69,7 +69,7 @@ public final class AMQConstant public static final AMQConstant MESSAGE_TOO_LARGE = new AMQConstant(311, "message too large", true); public static final AMQConstant NO_ROUTE = new AMQConstant(312, "no route", true); - + public static final AMQConstant NO_CONSUMERS = new AMQConstant(313, "no consumers", true); public static final AMQConstant CONTEXT_IN_USE = new AMQConstant(320, "context in use", true); @@ -78,12 +78,18 @@ public final class AMQConstant public static final AMQConstant INVALID_SELECTOR = new AMQConstant(322, "selector invalid", true); + public static final AMQConstant INVALID_ROUTING_KEY = new AMQConstant(323, "routing key invalid", true); + public static final AMQConstant INVALID_PATH = new AMQConstant(402, "invalid path", true); public static final AMQConstant ACCESS_REFUSED = new AMQConstant(403, "access refused", true); public static final AMQConstant NOT_FOUND = new AMQConstant(404, "not found", true); + public static final AMQConstant ALREADY_EXISTS = new AMQConstant(405, "Already exists", true); + + public static final AMQConstant IN_USE = new AMQConstant(406, "In use", true); + public static final AMQConstant FRAME_ERROR = new AMQConstant(501, "frame error", true); public static final AMQConstant SYNTAX_ERROR = new AMQConstant(502, "syntax error", true); |