diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoExceptionTranslator.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoExceptionTranslator.java index 27aa0a656..2880b1069 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoExceptionTranslator.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoExceptionTranslator.java @@ -16,6 +16,7 @@ package org.springframework.data.document.mongodb; import com.mongodb.MongoException; +import com.mongodb.MongoException.CursorNotFound; import com.mongodb.MongoException.DuplicateKey; import com.mongodb.MongoException.Network; import com.mongodb.MongoInternalException; @@ -52,11 +53,14 @@ public class MongoExceptionTranslator implements PersistenceExceptionTranslator // All other MongoExceptions if (ex instanceof DuplicateKey) { - return new DataIntegrityViolationException(ex.getMessage(), ex); + return new DuplicateKeyException(ex.getMessage(), ex); } if (ex instanceof Network) { return new DataAccessResourceFailureException(ex.getMessage(), ex); } + if (ex instanceof CursorNotFound) { + return new DataAccessResourceFailureException(ex.getMessage(), ex); + } if (ex instanceof MongoException) { int code = ((MongoException)ex).getCode(); if (code == 11000 || code == 11001) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java index f622d7be2..dedc8598c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoTemplateTests.java @@ -96,8 +96,8 @@ public class MongoTemplateTests { @Test public void updateFailure() throws Exception { - MongoTemplate mongoTemplate = new MongoTemplate(template.getDb().getMongo(), "test", "people", - new WriteConcern(), WriteResultChecking.EXCEPTION); + MongoTemplate mongoTemplate = new MongoTemplate(template.getDb().getMongo(), "test", "people"); + mongoTemplate.setWriteResultChecking(WriteResultChecking.EXCEPTION); Person person = new Person("Oliver2"); person.setAge(25);