@Override public String toString() { return "BulkWriteError{" + "index=" + index + ", code=" + getCode() + ", message='" + getMessage() + '\'' + ", details=" + getDetails() + '}'; } }
static List<BulkWriteError> translateWriteErrors(final List<com.mongodb.bulk.BulkWriteError> errors) { List<BulkWriteError> retVal = new ArrayList<BulkWriteError>(errors.size()); for (com.mongodb.bulk.BulkWriteError cur : errors) { retVal.add(new BulkWriteError(cur.getCode(), cur.getMessage(), DBObjects.toDBObject(cur.getDetails()), cur.getIndex())); } return retVal; }
private void mergeWriteErrors(final List<BulkWriteError> newWriteErrors, final IndexMap indexMap) { for (BulkWriteError cur : newWriteErrors) { this.writeErrors.add(new BulkWriteError(cur.getCode(), cur.getMessage(), cur.getDetails(), indexMap.map(cur.getIndex()) )); } }
if (x.getCode() == 11000) { return new DuplicateKeyException(ex.getMessage(), ex);
List<BulkWriteError> errors = ((MongoBulkWriteException) exception).getWriteErrors(); check(errors).hasSize(1); check(errors.get(0).getCode()).is(11000); check(errors.get(0).getMessage()).contains("duplicate key"); return;
@SuppressWarnings("deprecation") private MongoException convertBulkWriteException(final MongoBulkWriteException e) { BulkWriteError lastError = getLastError(e); if (lastError != null) { if (ErrorCategory.fromErrorCode(lastError.getCode()) == ErrorCategory.DUPLICATE_KEY) { return new DuplicateKeyException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } else { return new WriteConcernException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } } else { return new WriteConcernException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } }
private BsonDocument manufactureGetLastErrorResponse(final MongoBulkWriteException e) { BsonDocument response = new BsonDocument(); addBulkWriteResultToResponse(e.getWriteResult(), response); if (e.getWriteConcernError() != null) { response.putAll(e.getWriteConcernError().getDetails()); } if (getLastError(e) != null) { response.put("err", new BsonString(getLastError(e).getMessage())); response.put("code", new BsonInt32(getLastError(e).getCode())); response.putAll(getLastError(e).getDetails()); } else if (e.getWriteConcernError() != null) { response.put("err", new BsonString(e.getWriteConcernError().getMessage())); response.put("code", new BsonInt32(e.getWriteConcernError().getCode())); } return response; }
if (x.getCode() == 11000) { return new DuplicateKeyException(ex.getMessage(), ex);
private static boolean isDuplicateKeyException(Exception exception) { return exception instanceof DuplicateKeyException || (exception instanceof MongoBulkWriteException && ((MongoBulkWriteException) exception).getWriteErrors().stream().anyMatch(e -> e.getCode() == 11000)); }
private static boolean isDuplicateKeyException(Exception exception) { return exception instanceof DuplicateKeyException || (exception instanceof MongoBulkWriteException && ((MongoBulkWriteException) exception).getWriteErrors().stream().anyMatch(e -> e.getCode() == 11000)); }
List<String>duplicateIds = new ArrayList<String>(); List<BulkWriteError> errors = mbwe.getWriteErrors(); for (BulkWriteError error : errors) { LOGGER.error("{}", error.getMessage()); // extract from error.message the id of the duplicated document, (11000 is the duplicate id code) if (error.getCode() == 11000) { Matcher m = Pattern.compile("[0-9a-f]{24}") .matcher(error.getMessage()); m.find(); duplicateIds.add(m.group()); } } // here the duplicateIds will hold all the found ids, you can print them in console for example: System.out.println(duplicateIds.toString()); // and do whatever else you like with them
@Override public String toString() { return "BulkWriteError{" + "index=" + index + ", code=" + getCode() + ", message='" + getMessage() + '\'' + ", details=" + getDetails() + '}'; } }
static List<BulkWriteError> translateWriteErrors(final List<com.mongodb.bulk.BulkWriteError> errors) { List<BulkWriteError> retVal = new ArrayList<BulkWriteError>(errors.size()); for (com.mongodb.bulk.BulkWriteError cur : errors) { retVal.add(new BulkWriteError(cur.getCode(), cur.getMessage(), DBObjects.toDBObject(cur.getDetails()), cur.getIndex())); } return retVal; }
private void mergeWriteErrors(final List<BulkWriteError> newWriteErrors, final IndexMap indexMap) { for (BulkWriteError cur : newWriteErrors) { this.writeErrors.add(new BulkWriteError(cur.getCode(), cur.getMessage(), cur.getDetails(), indexMap.map(cur.getIndex()) )); } }
if (error.getCode() == 11000 && error.getMessage().contains("_id_ dup key")) { nrep.addProperty("index", new BsonInt32( ResponseHelper.getHttpStatusFromErrorCode( error.getCode()))); } else { nrep.addProperty("index", new BsonInt32(error.getIndex())); nrep.addProperty("mongodbErrorCode", new BsonInt32(error.getCode())); nrep.addProperty("httpStatus", new BsonInt32(HttpStatus.SC_NOT_FOUND)); new BsonString( ResponseHelper.getMessageFromErrorCode( error.getCode())));
for (BulkWriteError bulkWriteError : e.getWriteErrors()) { if (ErrorCategory.fromErrorCode(bulkWriteError.getCode()).equals(ErrorCategory.DUPLICATE_KEY)) { return 0;
for (BulkWriteError bulkWriteError : e.getWriteErrors()) { if (ErrorCategory.fromErrorCode(bulkWriteError.getCode()).equals(ErrorCategory.DUPLICATE_KEY)) { return 0;
if (!ErrorCategory.fromErrorCode(writeError.getCode()).equals(ErrorCategory.DUPLICATE_KEY)) { throw e; } else { Set<String> duplicatedNonInsertedId = new HashSet<>(); for (BulkWriteError writeError : e.getWriteErrors()) { if (ErrorCategory.fromErrorCode(writeError.getCode()).equals(ErrorCategory.DUPLICATE_KEY)) { String id = newStudy.getIds().get(writeError.getIndex()); duplicatedNonInsertedId.add(id);
@SuppressWarnings("deprecation") private MongoException convertBulkWriteException(final MongoBulkWriteException e) { BulkWriteError lastError = getLastError(e); if (lastError != null) { if (ErrorCategory.fromErrorCode(lastError.getCode()) == ErrorCategory.DUPLICATE_KEY) { return new DuplicateKeyException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } else { return new WriteConcernException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } } else { return new WriteConcernException(manufactureGetLastErrorResponse(e), e.getServerAddress(), translateBulkWriteResult(e.getWriteResult())); } }
private BsonDocument manufactureGetLastErrorResponse(final MongoBulkWriteException e) { BsonDocument response = new BsonDocument(); addBulkWriteResultToResponse(e.getWriteResult(), response); if (e.getWriteConcernError() != null) { response.putAll(e.getWriteConcernError().getDetails()); } if (getLastError(e) != null) { response.put("err", new BsonString(getLastError(e).getMessage())); response.put("code", new BsonInt32(getLastError(e).getCode())); response.putAll(getLastError(e).getDetails()); } else if (e.getWriteConcernError() != null) { response.put("err", new BsonString(e.getWriteConcernError().getMessage())); response.put("code", new BsonInt32(e.getWriteConcernError().getCode())); } return response; }