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();
+        }
     }
 
     /**