Browse Source
This resolves a package cycle introduced by MongoPersistentEntityIndexCreator referring to error codes now. Updated Sonargraph architecture description along the way.pull/336/head
4 changed files with 188 additions and 126 deletions
@ -0,0 +1,140 @@
@@ -0,0 +1,140 @@
|
||||
/* |
||||
* Copyright 2015 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.data.mongodb.util; |
||||
|
||||
import java.util.HashMap; |
||||
|
||||
/** |
||||
* {@link MongoDbErrorCodes} holds MongoDB specific error codes outlined in {@literal mongo/base/error_codes.err}. |
||||
* |
||||
* @author Christoph Strobl |
||||
* @since 1.8 |
||||
*/ |
||||
public final class MongoDbErrorCodes { |
||||
|
||||
static HashMap<Integer, String> dataAccessResourceFailureCodes; |
||||
static HashMap<Integer, String> dataIntegrityViolationCodes; |
||||
static HashMap<Integer, String> duplicateKeyCodes; |
||||
static HashMap<Integer, String> invalidDataAccessApiUsageExeption; |
||||
static HashMap<Integer, String> permissionDeniedCodes; |
||||
|
||||
static HashMap<Integer, String> errorCodes; |
||||
|
||||
static { |
||||
|
||||
dataAccessResourceFailureCodes = new HashMap<Integer, String>(10); |
||||
dataAccessResourceFailureCodes.put(6, "HostUnreachable"); |
||||
dataAccessResourceFailureCodes.put(7, "HostNotFound"); |
||||
dataAccessResourceFailureCodes.put(89, "NetworkTimeout"); |
||||
dataAccessResourceFailureCodes.put(91, "ShutdownInProgress"); |
||||
dataAccessResourceFailureCodes.put(12000, "SlaveDelayDifferential"); |
||||
dataAccessResourceFailureCodes.put(10084, "CannotFindMapFile64Bit"); |
||||
dataAccessResourceFailureCodes.put(10085, "CannotFindMapFile"); |
||||
dataAccessResourceFailureCodes.put(10357, "ShutdownInProgress"); |
||||
dataAccessResourceFailureCodes.put(10359, "Header==0"); |
||||
dataAccessResourceFailureCodes.put(13440, "BadOffsetInFile"); |
||||
dataAccessResourceFailureCodes.put(13441, "BadOffsetInFile"); |
||||
dataAccessResourceFailureCodes.put(13640, "DataFileHeaderCorrupt"); |
||||
|
||||
dataIntegrityViolationCodes = new HashMap<Integer, String>(6); |
||||
dataIntegrityViolationCodes.put(67, "CannotCreateIndex"); |
||||
dataIntegrityViolationCodes.put(68, "IndexAlreadyExists"); |
||||
dataIntegrityViolationCodes.put(85, "IndexOptionsConflict"); |
||||
dataIntegrityViolationCodes.put(86, "IndexKeySpecsConflict"); |
||||
dataIntegrityViolationCodes.put(112, "WriteConflict"); |
||||
dataIntegrityViolationCodes.put(117, "ConflictingOperationInProgress"); |
||||
|
||||
duplicateKeyCodes = new HashMap<Integer, String>(3); |
||||
duplicateKeyCodes.put(3, "OBSOLETE_DuplicateKey"); |
||||
duplicateKeyCodes.put(84, "DuplicateKeyValue"); |
||||
duplicateKeyCodes.put(11000, "DuplicateKey"); |
||||
duplicateKeyCodes.put(11001, "DuplicateKey"); |
||||
|
||||
invalidDataAccessApiUsageExeption = new HashMap<Integer, String>(); |
||||
invalidDataAccessApiUsageExeption.put(5, "GraphContainsCycle"); |
||||
invalidDataAccessApiUsageExeption.put(9, "FailedToParse"); |
||||
invalidDataAccessApiUsageExeption.put(14, "TypeMismatch"); |
||||
invalidDataAccessApiUsageExeption.put(15, "Overflow"); |
||||
invalidDataAccessApiUsageExeption.put(16, "InvalidLength"); |
||||
invalidDataAccessApiUsageExeption.put(20, "IllegalOperation"); |
||||
invalidDataAccessApiUsageExeption.put(21, "EmptyArrayOperation"); |
||||
invalidDataAccessApiUsageExeption.put(22, "InvalidBSON"); |
||||
invalidDataAccessApiUsageExeption.put(23, "AlreadyInitialized"); |
||||
invalidDataAccessApiUsageExeption.put(29, "NonExistentPath"); |
||||
invalidDataAccessApiUsageExeption.put(30, "InvalidPath"); |
||||
invalidDataAccessApiUsageExeption.put(40, "ConflictingUpdateOperators"); |
||||
invalidDataAccessApiUsageExeption.put(45, "UserDataInconsistent"); |
||||
invalidDataAccessApiUsageExeption.put(30, "DollarPrefixedFieldName"); |
||||
invalidDataAccessApiUsageExeption.put(52, "InvalidPath"); |
||||
invalidDataAccessApiUsageExeption.put(53, "InvalidIdField"); |
||||
invalidDataAccessApiUsageExeption.put(54, "NotSingleValueField"); |
||||
invalidDataAccessApiUsageExeption.put(55, "InvalidDBRef"); |
||||
invalidDataAccessApiUsageExeption.put(56, "EmptyFieldName"); |
||||
invalidDataAccessApiUsageExeption.put(57, "DottedFieldName"); |
||||
invalidDataAccessApiUsageExeption.put(59, "CommandNotFound"); |
||||
invalidDataAccessApiUsageExeption.put(60, "DatabaseNotFound"); |
||||
invalidDataAccessApiUsageExeption.put(61, "ShardKeyNotFound"); |
||||
invalidDataAccessApiUsageExeption.put(62, "OplogOperationUnsupported"); |
||||
invalidDataAccessApiUsageExeption.put(66, "ImmutableField"); |
||||
invalidDataAccessApiUsageExeption.put(72, "InvalidOptions"); |
||||
invalidDataAccessApiUsageExeption.put(115, "CommandNotSupported"); |
||||
invalidDataAccessApiUsageExeption.put(116, "DocTooLargeForCapped"); |
||||
invalidDataAccessApiUsageExeption.put(130, "SymbolNotFound"); |
||||
invalidDataAccessApiUsageExeption.put(17280, "KeyTooLong"); |
||||
invalidDataAccessApiUsageExeption.put(13334, "ShardKeyTooBig"); |
||||
|
||||
permissionDeniedCodes = new HashMap<Integer, String>(); |
||||
permissionDeniedCodes.put(11, "UserNotFound"); |
||||
permissionDeniedCodes.put(18, "AuthenticationFailed"); |
||||
permissionDeniedCodes.put(31, "RoleNotFound"); |
||||
permissionDeniedCodes.put(32, "RolesNotRelated"); |
||||
permissionDeniedCodes.put(33, "PrvilegeNotFound"); |
||||
permissionDeniedCodes.put(15847, "CannotAuthenticate"); |
||||
permissionDeniedCodes.put(16704, "CannotAuthenticateToAdminDB"); |
||||
permissionDeniedCodes.put(16705, "CannotAuthenticateToAdminDB"); |
||||
|
||||
errorCodes = new HashMap<Integer, String>(); |
||||
errorCodes.putAll(dataAccessResourceFailureCodes); |
||||
errorCodes.putAll(dataIntegrityViolationCodes); |
||||
errorCodes.putAll(duplicateKeyCodes); |
||||
errorCodes.putAll(invalidDataAccessApiUsageExeption); |
||||
errorCodes.putAll(permissionDeniedCodes); |
||||
} |
||||
|
||||
public static boolean isDataIntegrityViolationCode(Integer errorCode) { |
||||
return errorCode == null ? false : dataIntegrityViolationCodes.containsKey(errorCode); |
||||
} |
||||
|
||||
public static boolean isDataAccessResourceFailureCode(Integer errorCode) { |
||||
return errorCode == null ? false : dataAccessResourceFailureCodes.containsKey(errorCode); |
||||
} |
||||
|
||||
public static boolean isDuplicateKeyCode(Integer errorCode) { |
||||
return errorCode == null ? false : duplicateKeyCodes.containsKey(errorCode); |
||||
} |
||||
|
||||
public static boolean isPermissionDeniedCode(Integer errorCode) { |
||||
return errorCode == null ? false : permissionDeniedCodes.containsKey(errorCode); |
||||
} |
||||
|
||||
public static boolean isInvalidDataAccessApiUsageCode(Integer errorCode) { |
||||
return errorCode == null ? false : invalidDataAccessApiUsageExeption.containsKey(errorCode); |
||||
} |
||||
|
||||
public static String getErrorDescription(Integer errorCode) { |
||||
return errorCode == null ? null : errorCodes.get(errorCode); |
||||
} |
||||
} |
||||
Loading…
Reference in new issue