001 /* 002 * Copyright 2009 Red Hat, Inc. 003 * Red Hat licenses this file to you under the Apache License, version 004 * 2.0 (the "License"); you may not use this file except in compliance 005 * with the License. You may obtain a copy of the License at 006 * http://www.apache.org/licenses/LICENSE-2.0 007 * Unless required by applicable law or agreed to in writing, software 008 * distributed under the License is distributed on an "AS IS" BASIS, 009 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or 010 * implied. See the License for the specific language governing 011 * permissions and limitations under the License. 012 */ 013 014 package org.hornetq.api.core; 015 016 /** 017 * 018 * HornetQException is the root exception for HornetQ API. 019 * 020 * @author <a href="mailto:tim.fox@jboss.com">Tim Fox</a> 021 * 022 */ 023 public class HornetQException extends Exception 024 { 025 private static final long serialVersionUID = -4802014152804997417L; 026 027 // Error codes ------------------------------------------------- 028 029 /** 030 * Internal error which prevented HornetQ to perform. 031 */ 032 public static final int INTERNAL_ERROR = 000; 033 034 /** 035 * A packet of unsupported type was received by HornetQ PacketHandler. 036 */ 037 public static final int UNSUPPORTED_PACKET = 001; 038 039 /** 040 * A client is not able to connect to HornetQ server. 041 */ 042 public static final int NOT_CONNECTED = 002; 043 044 /** 045 * A client timed out will connecting to HornetQ server. 046 */ 047 public static final int CONNECTION_TIMEDOUT = 003; 048 049 /** 050 * A client was disconnected from HornetQ server when the server has shut down. 051 */ 052 public static final int DISCONNECTED = 004; 053 054 /** 055 * A blocking call from a client was unblocked during failover. 056 */ 057 public static final int UNBLOCKED = 005; 058 059 /** 060 * Unexpected I/O error occured on the server. 061 */ 062 public static final int IO_ERROR = 006; 063 064 /** 065 * An operation failed because a queue does not exist on the server. 066 */ 067 public static final int QUEUE_DOES_NOT_EXIST = 100; 068 069 /** 070 * An operation failed because a queue exists on the server. 071 */ 072 public static final int QUEUE_EXISTS = 101; 073 074 /** 075 * A client operation failed because the calling resource 076 * (ClientSession, ClientProducer, etc.) is closed. 077 */ 078 public static final int OBJECT_CLOSED = 102; 079 080 /** 081 * An filter expression has not been validated 082 */ 083 public static final int INVALID_FILTER_EXPRESSION = 103; 084 085 /** 086 * A HornetQ resource is not in a legal state (e.g. calling 087 * ClientConsumer.receive() if a MessageHandler is set) 088 */ 089 public static final int ILLEGAL_STATE = 104; 090 091 /** 092 * A security problem occured (authentication issues, permission issues,...) 093 */ 094 public static final int SECURITY_EXCEPTION = 105; 095 096 /** 097 * An operation failed because an address does not exist on the server. 098 */ 099 public static final int ADDRESS_DOES_NOT_EXIST = 106; 100 101 /** 102 * An operation failed because an address exists on the server. 103 */ 104 public static final int ADDRESS_EXISTS = 107; 105 106 /** 107 * A incompatibility between HornetQ versions on the client and the server has been detected 108 */ 109 public static final int INCOMPATIBLE_CLIENT_SERVER_VERSIONS = 108; 110 111 /** 112 * An operation failed because a session exists on the server. 113 */ 114 public static final int SESSION_EXISTS = 109; 115 116 /** 117 * An problem occurred while manipulating the body of a large message. 118 */ 119 public static final int LARGE_MESSAGE_ERROR_BODY = 110; 120 121 /** 122 * A transaction was rolled back. 123 */ 124 public static final int TRANSACTION_ROLLED_BACK = 111; 125 126 /** 127 * The creation of a session was rejected by the server (e.g. if the 128 * server is starting and has not finish to be initialized) 129 */ 130 public static final int SESSION_CREATION_REJECTED = 112; 131 132 /** 133 * A DuplicateID was rejected. 134 */ 135 public static final int DUPLICATE_ID_REJECTED = 113; 136 137 138 /** 139 * A Session Metadata was set in duplication 140 */ 141 public static final int DUPLICATE_METADATA = 114; 142 143 144 // Native Error codes ---------------------------------------------- 145 146 /** 147 * A internal error occured in the AIO native code 148 */ 149 public static final int NATIVE_ERROR_INTERNAL = 200; 150 151 /** 152 * A buffer is invalid in the AIO native code 153 */ 154 public static final int NATIVE_ERROR_INVALID_BUFFER = 201; 155 156 /** 157 * Alignment error in the AIO native code 158 */ 159 public static final int NATIVE_ERROR_NOT_ALIGNED = 202; 160 161 /** 162 * AIO has not been properly initialized 163 */ 164 public static final int NATIVE_ERROR_CANT_INITIALIZE_AIO = 203; 165 166 /** 167 * AIO has not been properly released 168 */ 169 public static final int NATIVE_ERROR_CANT_RELEASE_AIO = 204; 170 171 /** 172 * A closed file has not be properly reopened 173 */ 174 public static final int NATIVE_ERROR_CANT_OPEN_CLOSE_FILE = 205; 175 176 /** 177 * An error occured while allocating a queue in AIO native code 178 */ 179 public static final int NATIVE_ERROR_CANT_ALLOCATE_QUEUE = 206; 180 181 /** 182 * An error occured while pre-allocating a file in AIO native code 183 */ 184 public static final int NATIVE_ERROR_PREALLOCATE_FILE = 208; 185 186 /** 187 * An error occurred while allocating memory in the AIO native code 188 */ 189 public static final int NATIVE_ERROR_ALLOCATE_MEMORY = 209; 190 191 /** 192 * The outcome of a tx is unknown 193 */ 194 public static final int TRANSACTION_OUTCOME_UNKNOWN = 210; 195 196 /** 197 * AIO is full 198 */ 199 public static final int NATIVE_ERROR_AIO_FULL = 211; 200 201 private int code; 202 203 public HornetQException() 204 { 205 } 206 207 public HornetQException(final int code) 208 { 209 this.code = code; 210 } 211 212 public HornetQException(final int code, final String msg) 213 { 214 super(msg); 215 216 this.code = code; 217 } 218 219 public HornetQException(final int code, final String msg, final Throwable cause) 220 { 221 super(msg, cause); 222 223 this.code = code; 224 } 225 226 public int getCode() 227 { 228 return code; 229 } 230 231 @Override 232 public String toString() 233 { 234 return "HornetQException[errorCode=" + code + " message=" + getMessage() + "]"; 235 } 236 237 }