svn commit: r523536 - /xml/xindice/trunk/java/src/org/apache/xindice/core/FaultCodes.java

[email protected]
Newsgroups gmane.text.xml.xindice.devel
Message-ID <[email protected]>
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();
+        }
     }
 
     /**
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.