You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xindice-dev@xml.apache.org by vg...@apache.org on 2007/03/29 04:41:03 UTC
svn commit: r523536 -
/xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java
Author: vgritsenko
Date: Wed Mar 28 19:41:02 2007
New Revision: 523536
URL: http://svn.apache.org/viewvc?view=rev&rev=523536
Log:
applied patch from bug #40867
Modified:
xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java
Modified: xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java
URL: http://svn.apache.org/viewvc/xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java?view=diff&rev=523536&r1=523535&r2=523536
==============================================================================
--- xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java (original)
+++ xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java Wed Mar 28 19:41:02 2007
@@ -40,6 +40,8 @@
private static final Map faultMessages = new HashMap();
+ private static final Map faultCodesToErrorCodesMap = new HashMap();
+
public static final int GEN = 0;
public static final int OBJ = 100;
public static final int COL = 200;
@@ -118,6 +120,11 @@
putCodeMessage(GEN_CRITICAL_ERROR, "Critical Error");
putCodeMessage(GEN_FATAL_ERROR, "Fatal Error");
+ addFaultCodeToErrorCodeMap(GEN_UNKNOWN, ErrorCodes.UNKNOWN_ERROR);
+ addFaultCodeToErrorCodeMap(GEN_GENERAL_ERROR, ErrorCodes.UNKNOWN_ERROR);
+ addFaultCodeToErrorCodeMap(GEN_CRITICAL_ERROR, ErrorCodes.UNKNOWN_ERROR);
+ addFaultCodeToErrorCodeMap(GEN_FATAL_ERROR, ErrorCodes.UNKNOWN_ERROR);
+
// Collection-related errors 200 series
putCodeMessage(COL_COLLECTION_NOT_FOUND, "Collection Not Found");
putCodeMessage(COL_DOCUMENT_NOT_FOUND, "Collection Document Not Found");
@@ -134,6 +141,21 @@
putCodeMessage(COL_CANNOT_DROP, "Collection Cannot Drop");
putCodeMessage(COL_INVALID_RESULT, "Collection Invalid Result");
+ addFaultCodeToErrorCodeMap(COL_COLLECTION_NOT_FOUND, ErrorCodes.NO_SUCH_COLLECTION);
+ addFaultCodeToErrorCodeMap(COL_DOCUMENT_NOT_FOUND, ErrorCodes.NO_SUCH_RESOURCE);
+ addFaultCodeToErrorCodeMap(COL_DUPLICATE_COLLECTION, ErrorCodes.INVALID_COLLECTION);
+ addFaultCodeToErrorCodeMap(COL_NULL_RESULT, ErrorCodes.INVALID_COLLECTION);
+ addFaultCodeToErrorCodeMap(COL_NO_FILER, ErrorCodes.INVALID_COLLECTION);
+ addFaultCodeToErrorCodeMap(COL_NO_INDEXMANAGER, ErrorCodes.INVALID_COLLECTION);
+ addFaultCodeToErrorCodeMap(COL_DOCUMENT_MALFORMED, ErrorCodes.INVALID_RESOURCE);
+ addFaultCodeToErrorCodeMap(COL_CANNOT_STORE, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(COL_CANNOT_RETRIEVE, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(COL_COLLECTION_READ_ONLY, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(COL_COLLECTION_CLOSED, ErrorCodes.COLLECTION_CLOSED);
+ addFaultCodeToErrorCodeMap(COL_CANNOT_CREATE, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(COL_CANNOT_DROP, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(COL_INVALID_RESULT, ErrorCodes.VENDOR_ERROR);
+
// Index-related errors 300 series
putCodeMessage(IDX_VALUE_NOT_FOUND, "Index Value Not Found");
putCodeMessage(IDX_INDEX_NOT_FOUND, "Index Not Found");
@@ -144,18 +166,37 @@
putCodeMessage(IDX_CORRUPTED, "Index Corrupted");
putCodeMessage(IDX_CANNOT_CREATE, "Index Cannot Create");
+ addFaultCodeToErrorCodeMap(IDX_VALUE_NOT_FOUND, ErrorCodes.INVALID_RESOURCE);
+ addFaultCodeToErrorCodeMap(IDX_INDEX_NOT_FOUND, ErrorCodes.NO_SUCH_RESOURCE);
+ addFaultCodeToErrorCodeMap(IDX_MATCHES_NOT_FOUND, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(IDX_DUPLICATE_INDEX, ErrorCodes.INVALID_RESOURCE);
+ addFaultCodeToErrorCodeMap(IDX_NOT_SUPPORTED, ErrorCodes.NOT_IMPLEMENTED);
+ addFaultCodeToErrorCodeMap(IDX_STYLE_NOT_FOUND, ErrorCodes.NO_SUCH_RESOURCE);
+ addFaultCodeToErrorCodeMap(IDX_CORRUPTED, ErrorCodes.INVALID_RESOURCE);
+ addFaultCodeToErrorCodeMap(IDX_CANNOT_CREATE, ErrorCodes.VENDOR_ERROR);
+
// Transaction-related errors 400 series
putCodeMessage(TRX_DOC_LOCKED, "Transaction Document Locked");
putCodeMessage(TRX_NO_CONTEXT, "Transaction No Context");
putCodeMessage(TRX_NOT_ACTIVE, "Transaction Not Active");
putCodeMessage(TRX_NOT_SUPPORTED, "Transaction Not Supported");
+ addFaultCodeToErrorCodeMap(TRX_DOC_LOCKED, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(TRX_NO_CONTEXT, ErrorCodes.INVALID_RESOURCE);
+ addFaultCodeToErrorCodeMap(TRX_NOT_ACTIVE, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(TRX_NOT_SUPPORTED, ErrorCodes.VENDOR_ERROR);
+
// Database-related errors 500 series
putCodeMessage(DBE_NO_PARENT, "Database No Parent");
putCodeMessage(DBE_CANNOT_DROP, "Database Cannot Drop");
putCodeMessage(DBE_CANNOT_CREATE, "Database Cannot Create");
putCodeMessage(DBE_CANNOT_READ, "Database Cannot Read");
+ addFaultCodeToErrorCodeMap(DBE_NO_PARENT, ErrorCodes.INVALID_DATABASE);
+ addFaultCodeToErrorCodeMap(DBE_CANNOT_DROP, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(DBE_CANNOT_CREATE, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(DBE_CANNOT_READ, ErrorCodes.VENDOR_ERROR);
+
// Query-related errors 600 series
putCodeMessage(QRY_NULL_RESULT, "Query Null Result");
putCodeMessage(QRY_COMPILATION_ERROR, "Query Compilation Error");
@@ -163,23 +204,58 @@
putCodeMessage(QRY_NOT_SUPPORTED, "Query Not Supported");
putCodeMessage(QRY_STYLE_NOT_FOUND, "Query Style Not Found");
+ addFaultCodeToErrorCodeMap(QRY_NULL_RESULT, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(QRY_COMPILATION_ERROR, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(QRY_PROCESSING_ERROR, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(QRY_NOT_SUPPORTED, ErrorCodes.VENDOR_ERROR);
+ addFaultCodeToErrorCodeMap(QRY_STYLE_NOT_FOUND, ErrorCodes.VENDOR_ERROR);
+
// Security-related errors 700 series
putCodeMessage(SEC_INVALID_USER, "Security Invalid User");
putCodeMessage(SEC_INVALID_GROUP, "Security Invalid Group");
putCodeMessage(SEC_INVALID_ACCESS, "Security Invalid Access");
putCodeMessage(SEC_INVALID_CREDENTIALS, "Security Invalid Credentials");
+ addFaultCodeToErrorCodeMap(SEC_INVALID_USER, ErrorCodes.PERMISSION_DENIED);
+ addFaultCodeToErrorCodeMap(SEC_INVALID_GROUP, ErrorCodes.PERMISSION_DENIED);
+ addFaultCodeToErrorCodeMap(SEC_INVALID_ACCESS, ErrorCodes.PERMISSION_DENIED);
+ addFaultCodeToErrorCodeMap(SEC_INVALID_CREDENTIALS, ErrorCodes.PERMISSION_DENIED);
+
// URI-related errors 800 series
putCodeMessage(URI_EMPTY, "URI Empty");
putCodeMessage(URI_NULL, "URI Null");
putCodeMessage(URI_PARSE_ERROR, "URI Parse Error");
+ addFaultCodeToErrorCodeMap(URI_EMPTY, ErrorCodes.INVALID_URI);
+ addFaultCodeToErrorCodeMap(URI_NULL, ErrorCodes.INVALID_URI);
+ addFaultCodeToErrorCodeMap(URI_PARSE_ERROR, ErrorCodes.INVALID_URI);
+
// Java-related errors 2000 series
putCodeMessage(JAVA_RUNTIME_ERROR, "Java Runtime Error");
}
private static void putCodeMessage(int code, String message) {
faultMessages.put(new Integer(code), message);
+ }
+
+ private static void addFaultCodeToErrorCodeMap(int code, int errCode) {
+ faultCodesToErrorCodesMap.put(new Integer(code), new Integer(errCode));
+ }
+
+ /**
+ * getErrorCode returns the associated XML:DB error code for the
+ * specified Xindice fault code
+ *
+ * @param faultCode The Xindice fault code
+ * @return the associated XML:DB error code
+ */
+ public static int getErrorCode(int faultCode) {
+ Object err = faultCodesToErrorCodesMap.get(new Integer(faultCode));
+ if (err == null) {
+ return ErrorCodes.UNKNOWN_ERROR;
+ } else {
+ return ((Integer) err).intValue();
+ }
}
/**