PageRenderTime 55ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/util/src/error.c

http://github.com/apache/axis2-c
C | 565 lines | 476 code | 30 blank | 59 comment | 16 complexity | fb824e4cb7b54a38714b1a5b30bcb219 MD5 | raw file
Possible License(s): Apache-2.0
  1. /*
  2. * Licensed to the Apache Software Foundation (ASF) under one or more
  3. * contributor license agreements. See the NOTICE file distributed with
  4. * this work for additional information regarding copyright ownership.
  5. * The ASF licenses this file to You under the Apache License, Version 2.0
  6. * (the "License"); you may not use this file except in compliance with
  7. * the License. You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. #include <stdlib.h>
  18. #include <string.h>
  19. #include "axutil_error_default.h"
  20. #define AXIS2_ERROR_MESSAGE_ARRAY_SIZE AXUTIL_ERROR_MAX
  21. /**
  22. * Array to hold error messages corresponding to the pre-defined error codes.
  23. * Note that array has capacity for additional error messages. These are
  24. * reserved for modules.
  25. *
  26. * TODO: We have to review and change the following definition and also
  27. * need to come up with a reserve strategy for module error code blocks.
  28. *
  29. * In writing a module following steps must be followed in extending Axis2/C
  30. * errors
  31. * 1. Declare and register the start of error messages for the new
  32. * module.
  33. * 2. New module can use up to 1000 messages for its errors.
  34. * 3. In axis2c documentation an entry about new modules error range must
  35. * be inserted so that another new module can know about the already
  36. * occupied spaces.
  37. */
  38. AXIS2_EXPORT const axis2_char_t* axutil_error_messages[AXIS2_ERROR_MESSAGE_ARRAY_SIZE];
  39. AXIS2_EXTERN axis2_status_t AXIS2_CALL
  40. axutil_error_init()
  41. {
  42. int i = 0;
  43. for(i = 0; i < AXIS2_ERROR_MESSAGE_ARRAY_SIZE; i++)
  44. {
  45. axutil_error_messages[i] = "Unknown Error :(";
  46. }
  47. /* Common Errors */
  48. axutil_error_messages[AXIS2_ERROR_NONE] = "No Error";
  49. axutil_error_messages[AXIS2_ERROR_NO_MEMORY] = "Out of memory";
  50. axutil_error_messages[AXIS2_ERROR_INVALID_NULL_PARAM]
  51. = "NULL parameter was passed when a non NULL parameter was expected";
  52. /* core:addr */
  53. /* core:clientapi */
  54. axutil_error_messages[AXIS2_ERROR_BLOCKING_INVOCATION_EXPECTS_RESPONSE]
  55. = "Blocking invocation expects response";
  56. axutil_error_messages[AXIS2_ERROR_CANNOT_INFER_TRANSPORT] = "Cannot infer transport from URL";
  57. axutil_error_messages[AXIS2_ERROR_CLIENT_SIDE_SUPPORT_ONLY_ONE_CONF_CTX]
  58. = "Client side support only one configuration context";
  59. axutil_error_messages[AXIS2_ERROR_MEP_CANNOT_BE_NULL_IN_MEP_CLIENT]
  60. = "MEP cannot be NULL in MEP client";
  61. axutil_error_messages[AXIS2_ERROR_MEP_MISMATCH_IN_MEP_CLIENT] = "MEP mismatch";
  62. axutil_error_messages[AXIS2_ERROR_TWO_WAY_CHANNEL_NEEDS_ADDRESSING]
  63. = "Two way channel needs addressing module to be engaged";
  64. axutil_error_messages[AXIS2_ERROR_UNKNOWN_TRANSPORT] = "Unknown transport";
  65. axutil_error_messages[AXIS2_ERROR_UNSUPPORTED_TYPE] = "Type is not supported";
  66. axutil_error_messages[AXIS2_ERROR_OPTIONS_OBJECT_IS_NOT_SET] = "Options object is not set";
  67. axutil_error_messages[AXIS2_ERROR_SESSION_TIMEOUT] = "Session Timeout";
  68. /* core:clientapi:diclient */
  69. /* core:context */
  70. axutil_error_messages[AXIS2_ERROR_INVALID_SOAP_ENVELOPE_STATE] = "Invalid SOAP envelope state";
  71. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_MSG_CTX] = "Invalid message context state";
  72. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_SVC] = "Service accessed has invalid state";
  73. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_SVC_GRP]
  74. = "Service group accessed has invalid state";
  75. axutil_error_messages[AXIS2_ERROR_SERVICE_NOT_YET_FOUND] = "Service not yet found";
  76. /* core:deployment */
  77. axutil_error_messages[AXI2_ERROR_INVALID_PHASE] = "Invalid phase found in phase validation*";
  78. axutil_error_messages[AXIS2_ERROR_CONFIG_NOT_FOUND] = "Configuration file cannot be found";
  79. axutil_error_messages[AXIS2_ERROR_DATA_ELEMENT_IS_NULL] = "Data element of the OM Node is NULL";
  80. axutil_error_messages[AXIS2_ERROR_IN_FLOW_NOT_ALLOWED_IN_TRS_OUT]
  81. = "In transport sender, Inflow is not allowed";
  82. axutil_error_messages[AXIS2_ERROR_INVALID_HANDLER_STATE] = "Invalid handler state";
  83. axutil_error_messages[AXIS2_ERROR_INVALID_MODUELE_REF] = "Invalid module reference encountered";
  84. axutil_error_messages[AXIS2_ERROR_INVALID_MODUELE_REF_BY_OP]
  85. = "Invalid module referenced by operation";
  86. axutil_error_messages[AXIS2_ERROR_INVALID_MODULE_CONF] = "Invalid module configuration";
  87. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_DESC_BUILDER]
  88. = "Description builder is found to be in invalid state";
  89. axutil_error_messages[AXIS2_ERROR_MODULE_NOT_FOUND] = "Module not found";
  90. axutil_error_messages[AXIS2_ERROR_MODULE_VALIDATION_FAILED] = "Module validation failed";
  91. axutil_error_messages[AXIS2_ERROR_MODULE_XML_NOT_FOUND_FOR_THE_MODULE]
  92. = "Module XML file is not found in the given path";
  93. axutil_error_messages[AXIS2_ERROR_NO_DISPATCHER_FOUND] = "No dispatcher found";
  94. axutil_error_messages[AXIS2_ERROR_OP_NAME_MISSING] = "Operation name is missing";
  95. axutil_error_messages[AXIS2_ERROR_OUT_FLOW_NOT_ALLOWED_IN_TRS_IN]
  96. = "In transport receiver, outflow is not allowed";
  97. axutil_error_messages[AXIS2_ERROR_REPO_CAN_NOT_BE_NULL] = "Repository name cannot be NULL";
  98. axutil_error_messages[AXIS2_ERROR_REPOSITORY_NOT_EXIST] = "Repository in path does not exist";
  99. axutil_error_messages[AXIS2_ERROR_REPOS_LISTENER_INIT_FAILED]
  100. = "Repository listener initialization failed";
  101. axutil_error_messages[AXIS2_ERROR_SERVICE_XML_NOT_FOUND]
  102. = "Service XML file is not found in the given path";
  103. axutil_error_messages[AXIS2_ERROR_SVC_NAME_ERROR] = "Service name error";
  104. axutil_error_messages[AXIS2_ERROR_TRANSPORT_SENDER_ERROR] = "Transport sender error";
  105. axutil_error_messages[AXIS2_PATH_TO_CONFIG_CAN_NOT_BE_NULL]
  106. = "Path to configuration file can not be NULL";
  107. axutil_error_messages[AXIS2_ERROR_INVALID_SVC] = "Invalid service";
  108. /* core:description */
  109. axutil_error_messages[AXIS2_ERROR_CANNOT_CORRELATE_MSG] = "Cannot correlate message";
  110. axutil_error_messages[AXIS2_ERROR_COULD_NOT_MAP_MEP_URI_TO_MEP_CONSTANT]
  111. = "Could not map the MEP URI to an Axis2/C MEP constant value";
  112. axutil_error_messages[AXIS2_ERROR_INVALID_MESSAGE_ADDITION]
  113. = "Invalid message addition operation context completed";
  114. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_MODULE_DESC]
  115. = "Module description accessed has invalid state";
  116. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_PARAM_CONTAINER]
  117. = "Parameter container not set";
  118. axutil_error_messages[AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_OP]
  119. = "Module has already been engaged to the operation";
  120. axutil_error_messages[AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC]
  121. = "Module has already been engaged on the service.";
  122. axutil_error_messages[AXIS2_ERROR_MODULE_ALREADY_ENGAGED_TO_SVC_GRP]
  123. = "Module has already been engaged on the service.";
  124. axutil_error_messages[AXIS2_ERROR_PARAMETER_LOCKED_CANNOT_OVERRIDE]
  125. = "Parameter locked, cannot override";
  126. axutil_error_messages[AXIS2_ERROR_EMPTY_SCHEMA_LIST]
  127. = "Schema list is empty or NULL in service";
  128. /* core:engine */
  129. axutil_error_messages[AXIS2_ERROR_BEFORE_AFTER_HANDLERS_SAME]
  130. = "Both before and after handlers cannot be the same";
  131. axutil_error_messages[AXIS2_ERROR_INVALID_HANDLER_RULES] = "Invalid handler rules";
  132. axutil_error_messages[AXIS2_ERROR_INVALID_MODULE] = "Invalid module";
  133. axutil_error_messages[AXIS2_ERROR_INVALID_PHASE_FIRST_HANDLER]
  134. = "Invalid first handler for phase";
  135. axutil_error_messages[AXIS2_ERROR_INVALID_PHASE_LAST_HANDLER]
  136. = "Invalid last handler for phase";
  137. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_CONF] = "Invalid engine configuration state";
  138. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_PROCESSING_FAULT_ALREADY]
  139. = "Message context processing a fault already";
  140. axutil_error_messages[AXIS2_ERROR_NOWHERE_TO_SEND_FAULT]
  141. = "fault to field not specified in message context";
  142. axutil_error_messages[AXIS2_ERROR_PHASE_ADD_HANDLER_INVALID]
  143. = "Only one handler allowed for phase, adding another handler is not allowed";
  144. axutil_error_messages[AXIS2_ERROR_PHASE_FIRST_HANDLER_ALREADY_SET]
  145. = "First handler of phase already set";
  146. axutil_error_messages[AXIS2_ERROR_PHASE_LAST_HANDLER_ALREADY_SET]
  147. = "Last handler of phase already set";
  148. axutil_error_messages[AXIS2_ERROR_TWO_SVCS_CANNOT_HAVE_SAME_NAME]
  149. = "Two service can not have same name, a service with same name already";
  150. /* core:phaseresolver */
  151. axutil_error_messages[AXIS2_ERROR_INVALID_MODULE_REF] = "Invalid module reference";
  152. axutil_error_messages[AXIS2_ERROR_INVALID_PHASE] = "Invalid Phase";
  153. axutil_error_messages[AXIS2_ERROR_NO_TRANSPORT_IN_CONFIGURED]
  154. = "There are no in transport chains configured";
  155. axutil_error_messages[AXIS2_ERROR_NO_TRANSPORT_OUT_CONFIGURED]
  156. = "There are no out transport chains configured";
  157. axutil_error_messages[AXIS2_ERROR_PHASE_IS_NOT_SPECIFED] = "Phase is not specified";
  158. axutil_error_messages[AXIS2_ERROR_SERVICE_MODULE_CAN_NOT_REFER_GLOBAL_PHASE]
  159. = "Service module can not refer global phase";
  160. /* core:wsdl */
  161. axutil_error_messages[AXIS2_ERROR_WSDL_SCHEMA_IS_NULL] = "Schema is NULL";
  162. /* core:receivers */
  163. axutil_error_messages[AXIS2_ERROR_OM_ELEMENT_INVALID_STATE] = "AXIOM element has invalid state";
  164. axutil_error_messages[AXIS2_ERROR_OM_ELEMENT_MISMATCH] = "AXIOM elements do not match";
  165. axutil_error_messages[AXIS2_ERROR_RPC_NEED_MATCHING_CHILD]
  166. = "RPC style SOAP body don't have a child element";
  167. axutil_error_messages[AXIS2_ERROR_UNKNOWN_STYLE]
  168. = "Operation description has unknown operation style";
  169. axutil_error_messages[AXIS2_ERROR_STRING_DOES_NOT_REPRESENT_A_VALID_NC_NAME]
  170. = "String does not represent a valid NCName";
  171. /* core:transport */
  172. /* core:transport:http */
  173. axutil_error_messages[AXIS2_ERROR_HTTP_CLIENT_TRANSPORT_ERROR] = "Error occurred in transport";
  174. axutil_error_messages[AXIS2_ERROR_HTTP_REQUEST_NOT_SENT]
  175. = "A read attempt(HTTP) for the reply without sending the request";
  176. axutil_error_messages[AXIS2_ERROR_INVALID_HEADER] = "Invalid string passed as a HTTP header";
  177. axutil_error_messages[AXIS2_ERROR_INVALID_HTTP_HEADER_START_LINE]
  178. = "Invalid status line or invalid request line";
  179. axutil_error_messages[AXIS2_ERROR_INVALID_TRANSPORT_PROTOCOL]
  180. = "Transport protocol is unsupported by axis2";
  181. axutil_error_messages[AXIS2_ERROR_NULL_BODY] = "No body present in the request or the response";
  182. axutil_error_messages[AXIS2_ERROR_NULL_CONFIGURATION_CONTEXT]
  183. = "A valid configuration context is required for the HTTP worker";
  184. axutil_error_messages[AXIS2_ERROR_NULL_HTTP_VERSION]
  185. = "HTTP version cannot be NULL in the status/request line";
  186. axutil_error_messages[AXIS2_ERROR_NULL_IN_STREAM_IN_MSG_CTX]
  187. = "Input stream is NULL in message context";
  188. axutil_error_messages[AXIS2_ERROR_NULL_OM_OUTPUT] = "OM output is NULL";
  189. axutil_error_messages[AXIS2_ERROR_NULL_SOAP_ENVELOPE_IN_MSG_CTX]
  190. = "NULL SOAP envelope in message context";
  191. axutil_error_messages[AXIS2_ERROR_NULL_STREAM_IN_CHUNKED_STREAM]
  192. = "NULL stream in the HTTP chucked stream";
  193. axutil_error_messages[AXIS2_ERROR_NULL_STREAM_IN_RESPONSE_BODY]
  194. = "NULL stream in the response body";
  195. axutil_error_messages[AXIS2_ERROR_NULL_URL] = "URL NULL in HTTP client";
  196. axutil_error_messages[AXIS2_ERROR_OUT_TRNSPORT_INFO_NULL]
  197. = "Transport information must be set in message context";
  198. axutil_error_messages[AXIS2_ERROR_RESPONSE_CONTENT_TYPE_MISSING]
  199. = "Content-Type header missing in HTTP response";
  200. axutil_error_messages[AXIS2_ERROR_RESPONSE_TIMED_OUT] = "Response timed out";
  201. axutil_error_messages[AXIS2_ERROR_SOAP_ENVELOPE_OR_SOAP_BODY_NULL]
  202. = "SOAP envelope or SOAP body NULL";
  203. axutil_error_messages[AXIS2_ERROR_SSL_ENGINE] = "Error occurred in SSL engine";
  204. axutil_error_messages[AXIS2_ERROR_SSL_NO_CA_FILE] = "Cannot find certificates";
  205. axutil_error_messages[AXIS2_ERROR_WRITING_RESPONSE]
  206. = "Error in writing the response in response writer";
  207. axutil_error_messages[AXIS2_ERROR_REQD_PARAM_MISSING]
  208. = "Required parameter is missing in URL encoded request";
  209. axutil_error_messages[AXIS2_ERROR_UNSUPPORTED_SCHEMA_TYPE] = " Unsupported schema type in REST";
  210. axutil_error_messages[AXIS2_ERROR_SVC_OR_OP_NOT_FOUND] = "Service or operation not found";
  211. /* mod_addr */
  212. axutil_error_messages[AXIS2_ERROR_NO_MSG_INFO_HEADERS] = "No messgae info headers";
  213. /* platforms */
  214. /* utils */
  215. axutil_error_messages[AXIS2_ERROR_COULD_NOT_OPEN_FILE] = "Could not open the file";
  216. axutil_error_messages[AXIS2_ERROR_DLL_CREATE_FAILED] = "Failed in creating DLL";
  217. axutil_error_messages[AXIS2_ERROR_DLL_LOADING_FAILED] = "DLL loading failed";
  218. axutil_error_messages[AXIS2_ERROR_ENVIRONMENT_IS_NULL] = "Environment passed is NULL";
  219. axutil_error_messages[AXIS2_ERROR_FILE_NAME_NOT_SET] = "Axis2 File does not have a file name";
  220. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_DLL_DESC]
  221. = "DLL description has invalid state of not having valid DLL create function, \
  222. of valid delete function or valid dll_handler";
  223. axutil_error_messages[AXIS2_ERROR_HANDLER_CREATION_FAILED] = "Failed in creating Handler";
  224. axutil_error_messages[AXIS2_ERROR_INDEX_OUT_OF_BOUNDS] = "Array list index out of bounds";
  225. axutil_error_messages[AXIS2_ERROR_INVALID_ADDRESS] = "Invalid IP or hostname";
  226. axutil_error_messages[AXIS2_ERROR_INVALID_FD]
  227. = "Trying to do operation on invalid file descriptor";
  228. axutil_error_messages[AXIS2_ERROR_INVALID_SOCKET]
  229. = "Trying to do operation on closed/not opened socket";
  230. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_PARAM] = "Parameter not set";
  231. axutil_error_messages[AXIS2_ERROR_MODULE_CREATION_FAILED] = "Module create failed";
  232. axutil_error_messages[AXIS2_ERROR_MSG_RECV_CREATION_FAILED]
  233. = "Failed in creating Message Receiver";
  234. axutil_error_messages[AXIS2_ERROR_NO_SUCH_ELEMENT] = "No such element";
  235. axutil_error_messages[AXIS2_ERROR_SOCKET_BIND_FAILED]
  236. = "Socket bind failed. Another process may be already using this port";
  237. axutil_error_messages[AXIS2_ERROR_SOCKET_ERROR]
  238. = "Error creating a socket. Most probably error returned by OS";
  239. axutil_error_messages[AXIS2_ERROR_SOCKET_LISTEN_FAILED] = "Listen failed for the server socket";
  240. axutil_error_messages[AXIS2_ERROR_SVC_SKELETON_CREATION_FAILED]
  241. = "Failed in creating Service Skeleton";
  242. axutil_error_messages[AXIS2_ERROR_TRANSPORT_RECV_CREATION_FAILED]
  243. = "Failed in creating Transport Receiver";
  244. axutil_error_messages[AXIS2_ERROR_TRANSPORT_SENDER_CREATION_FAILED]
  245. = "Failed in creating Transport Sender";
  246. axutil_error_messages[AXIS2_ERROR_UUID_GEN_FAILED]
  247. = "Generation of platform dependent UUID failed";
  248. axutil_error_messages[AXIS2_ERROR_POSSIBLE_DEADLOCK] = "Possible deadlock";
  249. /* WSDL */
  250. axutil_error_messages[AXIS2_ERROR_INTERFACE_OR_PORT_TYPE_NOT_FOUND_FOR_THE_BINDING]
  251. = "Interface or Port Type not found for the binding";
  252. axutil_error_messages[AXIS2_ERROR_INTERFACES_OR_PORTS_NOT_FOUND_FOR_PARTIALLY_BUILT_WOM]
  253. = "Interfaces or Ports not found for the partially built WOM";
  254. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_WSDL_OP]
  255. = "WSDL operation accessed has invalid state";
  256. axutil_error_messages[AXIS2_ERROR_INVALID_STATE_WSDL_SVC]
  257. = "WSDL Service accessed has invalid state";
  258. axutil_error_messages[AXIS2_ERROR_MEP_CANNOT_DETERMINE_MEP] = "Cannot determine MEP";
  259. axutil_error_messages[AXIS2_ERROR_WSDL_BINDING_NAME_IS_REQUIRED]
  260. = "WSDL binding name is cannot be NULL";
  261. axutil_error_messages[AXIS2_ERROR_WSDL_INTERFACE_NAME_IS_REQUIRED]
  262. = "PortType/Interface name cannot be NULL";
  263. axutil_error_messages[AXIS2_ERROR_WSDL_PARSER_INVALID_STATE]
  264. = "WSDL parsing has resulted in an invalid state";
  265. axutil_error_messages[AXIS2_ERROR_WSDL_SVC_NAME_IS_REQUIRED]
  266. = "WSDL service name cannot be NULL";
  267. /* XML */
  268. /* XML:attachments */
  269. axutil_error_messages[AXIS2_ERROR_ATTACHMENT_MISSING] = "Attachment is missing";
  270. /* XML:om */
  271. axutil_error_messages[AXIS2_ERROR_BUILDER_DONE_CANNOT_PULL]
  272. = "XML builder done with pulling. Pull parser cannot pull any more";
  273. axutil_error_messages[AXIS2_ERROR_INVALID_BUILDER_STATE_CANNOT_DISCARD]
  274. = "Discard failed because the builder state is invalid";
  275. axutil_error_messages[AXIS2_ERROR_INVALID_BUILDER_STATE_LAST_NODE_NULL]
  276. = "Invalid builder state; Builder's last node is NULL";
  277. axutil_error_messages[AXIS2_ERROR_INVALID_DOCUMENT_STATE_ROOT_NULL]
  278. = "Invalid document state; Document root is NULL";
  279. axutil_error_messages[AXIS2_ERROR_INVALID_DOCUMENT_STATE_UNDEFINED_NAMESPACE]
  280. = "Undefined namespace used";
  281. axutil_error_messages[AXIS2_ERROR_INVALID_EMPTY_NAMESPACE_URI]
  282. = "Namespace should have a valid URI";
  283. axutil_error_messages[AXIS2_ERROR_ITERATOR_NEXT_METHOD_HAS_NOT_YET_BEEN_CALLED]
  284. = "Next method has not been called so cannot remove"
  285. "an element before calling next valid for any om iterator";
  286. axutil_error_messages[AXIS2_ERROR_ITERATOR_REMOVE_HAS_ALREADY_BEING_CALLED]
  287. = "Document root is NULL, when it is not supposed to be NULL";
  288. axutil_error_messages[AXIS2_ERROR_XML_READER_ELEMENT_NULL]
  289. = "AXIOM XML reader returned NULL element";
  290. axutil_error_messages[AXIS2_ERROR_XML_READER_VALUE_NULL]
  291. = "AXIOM XML reader returned NULL value";
  292. /* XML:parser */
  293. axutil_error_messages[AXIS2_ERROR_CREATING_XML_STREAM_READER]
  294. = "Error occurred creating XML stream reader";
  295. axutil_error_messages[AXIS2_ERROR_CREATING_XML_STREAM_WRITER]
  296. = "Error occurred creating XML stream writer";
  297. axutil_error_messages[AXIS2_ERROR_WRITING_ATTRIBUTE] = "Error in writing attribute";
  298. axutil_error_messages[AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE]
  299. = "Error in writing attribute with namespace";
  300. axutil_error_messages[AXIS2_ERROR_WRITING_ATTRIBUTE_WITH_NAMESPACE_PREFIX]
  301. = "Error in writing attribute with namespace prefix";
  302. axutil_error_messages[AXIS2_ERROR_WRITING_COMMENT] = "Error in writing comment";
  303. axutil_error_messages[AXIS2_ERROR_WRITING_DATA_SOURCE] = "Error in writing data source";
  304. axutil_error_messages[AXIS2_ERROR_WRITING_DEFAULT_NAMESPACE]
  305. = "Error in writing default namespace";
  306. axutil_error_messages[AXIS2_ERROR_WRITING_DTD] = "Error in writing DDT";
  307. axutil_error_messages[AXIS2_ERROR_WRITING_EMPTY_ELEMENT]
  308. = "Error occurred in writing empty element";
  309. axutil_error_messages[AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE]
  310. = "Error occurred in writing empty element with namespace";
  311. axutil_error_messages[AXIS2_ERROR_WRITING_EMPTY_ELEMENT_WITH_NAMESPACE_PREFIX]
  312. = "Error in writing empty element with namespace prefix";
  313. axutil_error_messages[AXIS2_ERROR_WRITING_END_DOCUMENT]
  314. = "Error occurred in writing end document in XML writer";
  315. axutil_error_messages[AXIS2_ERROR_WRITING_END_ELEMENT]
  316. = "Error occurred in writing end element in XML writer";
  317. axutil_error_messages[AXIS2_ERROR_WRITING_PROCESSING_INSTRUCTION]
  318. = "Error in writing processing instruction";
  319. axutil_error_messages[AXIS2_ERROR_WRITING_START_DOCUMENT]
  320. = "Error occurred in writing start element in start document in XML writer";
  321. axutil_error_messages[AXIS2_ERROR_WRITING_START_ELEMENT]
  322. = "Error occurred in writing start element in XML writer";
  323. axutil_error_messages[AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE]
  324. = "Error occurred in writing start element with namespace in XML writer";
  325. axutil_error_messages[AXIS2_ERROR_WRITING_START_ELEMENT_WITH_NAMESPACE_PREFIX]
  326. = "Error occurred in writing start element with namespace prefix";
  327. axutil_error_messages[AXIS2_ERROR_WRITING_CDATA] = "Error in writing CDATA section";
  328. axutil_error_messages[AXIS2_ERROR_XML_PARSER_INVALID_MEM_TYPE]
  329. = "AXIS2_XML_PARSER_TYPE_BUFFER or AXIS2_XML_PARSER_TYPE_DOC is expected";
  330. /* invalid type passed */
  331. axutil_error_messages[AXIS2_ERROR_INVALID_BASE_TYPE] = "Invalid base type passed";
  332. axutil_error_messages[AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI]
  333. = "Invalid SOAP namespace URI found";
  334. axutil_error_messages[AXIS2_ERROR_INVALID_SOAP_VERSION] = "Invalid SOAP version";
  335. axutil_error_messages[AXIS2_ERROR_INVALID_VALUE_FOUND_IN_MUST_UNDERSTAND]
  336. = "Invalid value found in must understand";
  337. axutil_error_messages[AXIS2_ERROR_MULTIPLE_CODE_ELEMENTS_ENCOUNTERED]
  338. = "Multiple fault code elements encountered in SOAP fault";
  339. axutil_error_messages[AXIS2_ERROR_MULTIPLE_DETAIL_ELEMENTS_ENCOUNTERED]
  340. = "Multiple fault detail elements encountered in SOAP fault";
  341. axutil_error_messages[AXIS2_ERROR_MULTIPLE_NODE_ELEMENTS_ENCOUNTERED]
  342. = "Multiple fault node elements encountered in SOAP fault";
  343. axutil_error_messages[AXIS2_ERROR_MULTIPLE_REASON_ELEMENTS_ENCOUNTERED]
  344. = "Multiple fault reason elements encountered in SOAP fault";
  345. axutil_error_messages[AXIS2_ERROR_MULTIPLE_ROLE_ELEMENTS_ENCOUNTERED]
  346. = "Multiple fault role elements encountered in SOAP fault ";
  347. axutil_error_messages[AXIS2_ERROR_MULTIPLE_SUB_CODE_VALUES_ENCOUNTERED]
  348. = "Multiple fault sub-code value elements encountered";
  349. axutil_error_messages[AXIS2_ERROR_MULTIPLE_VALUE_ENCOUNTERED_IN_CODE_ELEMENT]
  350. = "Multiple fault value elements encountered";
  351. axutil_error_messages[AXIS2_ERROR_MUST_UNDERSTAND_SHOULD_BE_1_0_TRUE_FALSE]
  352. = "Must understand attribute should have a value of either true or false";
  353. axutil_error_messages[AXIS2_ERROR_OM_ELEMENT_EXPECTED] = "AXIOM element is expected";
  354. axutil_error_messages[AXIS2_ERROR_ONLY_CHARACTERS_ARE_ALLOWED_HERE]
  355. = "Processing SOAP 1.1 fault value element should have only"
  356. "text as its children";
  357. axutil_error_messages[AXIS2_ERROR_ONLY_ONE_SOAP_FAULT_ALLOWED_IN_BODY]
  358. = "Only one SOAP fault is allowed in SOAP body";
  359. axutil_error_messages[AXIS2_ERROR_SOAP11_FAULT_ACTOR_SHOULD_NOT_HAVE_CHILD_ELEMENTS]
  360. = "SOAP 1.1 fault actor should not have any child elements";
  361. axutil_error_messages[AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY]
  362. = "SOAP builder found a child element other than header or body in envelope"
  363. "element";
  364. axutil_error_messages[AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER]
  365. = "SOAP builder encountered body element first and header next";
  366. axutil_error_messages[AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED]
  367. = "SOAP builder multiple body elements encountered";
  368. axutil_error_messages[AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED]
  369. = "SOAP builder encountered multiple headers";
  370. axutil_error_messages[AXIS2_ERROR_SOAP_FAULT_CODE_DOES_NOT_HAVE_A_VALUE]
  371. = "SOAP fault code does not have a value";
  372. axutil_error_messages[AXIS2_ERROR_SOAP_FAULT_REASON_ELEMENT_SHOULD_HAVE_A_TEXT]
  373. = "SOAP fault reason element should have a text value";
  374. axutil_error_messages[AXIS2_ERROR_SOAP_FAULT_ROLE_ELEMENT_SHOULD_HAVE_A_TEXT]
  375. = "SOAP fault role element should have a text value";
  376. axutil_error_messages[AXIS2_ERROR_SOAP_FAULT_VALUE_SHOULD_BE_PRESENT_BEFORE_SUB_CODE]
  377. = "SOAP fault value should be present before sub-code element in SOAP fault code";
  378. axutil_error_messages[AXIS2_ERROR_SOAP_MESSAGE_DOES_NOT_CONTAIN_AN_ENVELOPE]
  379. = "SOAP message does not contain a SOAP envelope element";
  380. axutil_error_messages[AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME]
  381. = "SOAP message's first element should have a localname";
  382. axutil_error_messages[AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_REASON_ELEMENT]
  383. = "Localname not supported inside a reason element";
  384. axutil_error_messages[AXIS2_ERROR_THIS_LOCALNAME_IS_NOT_SUPPORTED_INSIDE_THE_SUB_CODE_ELEMENT]
  385. = "Localname not supported inside the sub-code element";
  386. axutil_error_messages[AXIS2_ERROR_THIS_LOCALNAME_NOT_SUPPORTED_INSIDE_THE_CODE_ELEMENT]
  387. = "Localname not supported inside the code element";
  388. axutil_error_messages[AXIS2_ERROR_TRANSPORT_LEVEL_INFORMATION_DOES_NOT_MATCH_WITH_SOAP]
  389. = "Transport identified SOAP version does not match with SOAP message version";
  390. axutil_error_messages[AXIS2_ERROR_UNSUPPORTED_ELEMENT_IN_SOAP_FAULT_ELEMENT]
  391. = "Unsupported element found in SOAP fault element";
  392. axutil_error_messages[AXIS2_ERROR_WRONG_ELEMENT_ORDER_ENCOUNTERED]
  393. = "Wrong element order encountered ";
  394. /* services */
  395. axutil_error_messages[AXIS2_ERROR_SVC_SKEL_INVALID_XML_FORMAT_IN_REQUEST]
  396. = "Invalid XML format in request";
  397. axutil_error_messages[AXIS2_ERROR_SVC_SKEL_INPUT_OM_NODE_NULL]
  398. = "Input OM node NULL, Probably error in SOAP request";
  399. axutil_error_messages[AXIS2_ERROR_SVC_SKEL_INVALID_OPERATION_PARAMETERS_IN_SOAP_REQUEST]
  400. = "Invalid parameters for service operation in SOAP request";
  401. axutil_error_messages[AXIS2_ERROR_WSDL_SCHEMA_IS_NULL] = "Schema is NULL";
  402. /* repos */
  403. axutil_error_messages[AXIS2_ERROR_REPOS_NOT_AUTHENTICATED] = "Not authenticated";
  404. axutil_error_messages[AXIS2_ERROR_REPOS_UNSUPPORTED_MODE] = "Unsupported mode";
  405. axutil_error_messages[AXIS2_ERROR_REPOS_EXPIRED] = "Expired";
  406. axutil_error_messages[AXIS2_ERROR_REPOS_NOT_IMPLEMENTED] = "Not implemented";
  407. axutil_error_messages[AXIS2_ERROR_REPOS_NOT_FOUND] = "Not found";
  408. axutil_error_messages[AXIS2_ERROR_REPOS_BAD_SEARCH_TEXT] = "Bad search text";
  409. /* neethi */
  410. axutil_error_messages[AXIS2_ERROR_NEETHI_ELEMENT_WITH_NO_NAMESPACE]
  411. = "Element with no namespace";
  412. axutil_error_messages[AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED_FROM_ELEMENT]
  413. = "Policy creation failed from element";
  414. axutil_error_messages[AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED_FROM_ELEMENT]
  415. = "All creation failed from element";
  416. axutil_error_messages[AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED_FROM_ELEMENT]
  417. = "Exactly one creation failed from element";
  418. axutil_error_messages[AXIS2_ERROR_NEETHI_REFERENCE_CREATION_FAILED_FROM_ELEMENT]
  419. = "Reference creation failed from element";
  420. axutil_error_messages[AXIS2_ERROR_NEETHI_ASSERTION_CREATION_FAILED_FROM_ELEMENT]
  421. = "Assertion creation failed from element";
  422. axutil_error_messages[AXIS2_ERROR_NEETHI_ALL_CREATION_FAILED] = "All creation failed";
  423. axutil_error_messages[AXIS2_ERROR_NEETHI_EXACTLYONE_CREATION_FAILED]
  424. = "Exactly one creation failed";
  425. axutil_error_messages[AXIS2_ERROR_NEETHI_POLICY_CREATION_FAILED] = "Policy creation failed";
  426. axutil_error_messages[AXIS2_ERROR_NEETHI_NORMALIZATION_FAILED] = "Normalization failed";
  427. axutil_error_messages[AXIS2_ERROR_NEETHI_WRONG_INPUT_FOR_MERGE] = "Wrong input for merge";
  428. axutil_error_messages[AXIS2_ERROR_NEETHI_CROSS_PRODUCT_FAILED] = "Cross product failed";
  429. axutil_error_messages[AXIS2_ERROR_NEETHI_NO_CHILDREN_POLICY_COMPONENTS]
  430. = "No children policy components";
  431. axutil_error_messages[AXIS2_ERROR_NEETHI_URI_NOT_SPECIFIED] = "Reference URI not specified";
  432. axutil_error_messages[AXIS2_ERROR_NEETHI_NO_ENTRY_FOR_THE_GIVEN_URI]
  433. = "No entry for the given URI";
  434. axutil_error_messages[AXIS2_ERROR_NEETHI_EXACTLYONE_NOT_FOUND_IN_NORMALIZED_POLICY]
  435. = "Exactly one not found in normalized policy";
  436. axutil_error_messages[AXIS2_ERROR_NEETHI_EXACTLYONE_IS_EMPTY] = "Exactly one is empty";
  437. axutil_error_messages[AXIS2_ERROR_NEETHI_ALL_NOT_FOUND_WHILE_GETTING_CROSS_PRODUCT]
  438. = "All not found while getting cross product";
  439. axutil_error_messages[AXIS2_ERROR_NEETHI_UNKNOWN_ASSERTION] = "Unknown Assertion";
  440. return AXIS2_SUCCESS;
  441. }
  442. AXIS2_EXTERN axutil_error_t *AXIS2_CALL
  443. axutil_error_create(
  444. axutil_allocator_t * allocator)
  445. {
  446. axutil_error_t *error;
  447. if(!allocator)
  448. return NULL;
  449. error = (axutil_error_t *)AXIS2_MALLOC(allocator, sizeof(axutil_error_t));
  450. memset(error, 0, sizeof(axutil_error_t));
  451. if(!error)
  452. return NULL;
  453. error->allocator = allocator;
  454. error->status_code = AXIS2_SUCCESS;
  455. return error;
  456. }
  457. AXIS2_EXTERN const axis2_char_t *AXIS2_CALL
  458. axutil_error_get_message(
  459. const axutil_error_t * error)
  460. {
  461. const axis2_char_t *message = NULL;
  462. if(error)
  463. {
  464. if(error->error_number > AXIS2_ERROR_NONE && error->error_number < AXUTIL_ERROR_MAX) /* TODO; This needs to be
  465. fixed to include module defined and user defined errors */
  466. message = axutil_error_messages[error->error_number];
  467. else
  468. {
  469. if(error->message)
  470. {
  471. message = error->message;
  472. }
  473. else if(error->error_number == AXIS2_ERROR_NONE)
  474. {
  475. message = axutil_error_messages[AXIS2_ERROR_NONE];
  476. }
  477. else
  478. {
  479. message = "Undefined error returned by business logic implementation";
  480. }
  481. }
  482. }
  483. return message;
  484. }
  485. AXIS2_EXTERN axis2_status_t AXIS2_CALL
  486. axutil_error_set_error_number(
  487. axutil_error_t * error,
  488. axutil_error_codes_t error_number)
  489. {
  490. if(!error)
  491. return AXIS2_FAILURE;
  492. error->error_number = error_number;
  493. return AXIS2_SUCCESS;
  494. }
  495. AXIS2_EXTERN axis2_status_t AXIS2_CALL
  496. axutil_error_set_status_code(
  497. axutil_error_t * error,
  498. axis2_status_codes_t status_code)
  499. {
  500. if(!error)
  501. return AXIS2_FAILURE;
  502. error->status_code = status_code;
  503. return AXIS2_SUCCESS;
  504. }
  505. AXIS2_EXTERN axis2_status_t AXIS2_CALL
  506. axutil_error_get_status_code(
  507. axutil_error_t * error)
  508. {
  509. if(error)
  510. return error->status_code;
  511. else
  512. return AXIS2_CRITICAL_FAILURE;
  513. }
  514. AXIS2_EXTERN axis2_status_t AXIS2_CALL
  515. axutil_error_set_error_message(
  516. axutil_error_t * error,
  517. axis2_char_t * message)
  518. {
  519. if(message && error)
  520. {
  521. error->message = message;
  522. return AXIS2_SUCCESS;
  523. }
  524. return AXIS2_FAILURE;
  525. }
  526. AXIS2_EXTERN void AXIS2_CALL
  527. axutil_error_free(
  528. axutil_error_t * error)
  529. {
  530. if(error)
  531. {
  532. AXIS2_FREE(error->allocator, error);
  533. }
  534. return;
  535. }