From 73f86a70ec16fd81064589e5f1422dcc571d2d57 Mon Sep 17 00:00:00 2001 From: Young-Gu Chae Date: Mon, 29 Aug 2016 17:11:28 +0900 Subject: [PATCH] DATACOUCH-243 - CouchbaseTemplate.doRemove() handle exceptions like doPersist() --- .../couchbase/core/CouchbaseTemplate.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java b/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java index 0441cd5f..4e01d1e1 100644 --- a/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java +++ b/src/main/java/org/springframework/data/couchbase/core/CouchbaseTemplate.java @@ -81,6 +81,7 @@ import org.springframework.data.mapping.model.ConvertingPropertyAccessor; * @author Michael Nitschinger * @author Oliver Gierke * @author Simon Baslé + * @author Young-Gu Chae */ public class CouchbaseTemplate implements CouchbaseOperations, ApplicationEventPublisherAware { @@ -638,9 +639,14 @@ public class CouchbaseTemplate implements CouchbaseOperations, ApplicationEventP execute(new BucketCallback() { @Override public Boolean doInBucket() throws InterruptedException, ExecutionException { - RawJsonDocument deletedDoc = client.remove((String) objectToRemove, persistTo, replicateTo, - RawJsonDocument.class); - return deletedDoc != null; + try { + RawJsonDocument deletedDoc = client.remove((String) objectToRemove, persistTo, replicateTo, + RawJsonDocument.class); + return deletedDoc != null; + } catch (Exception e) { + handleWriteResultError("Delete document failed: " + e.getMessage(), e); + return false; //this could be skipped if WriteResultChecking.EXCEPTION + } } }); maybeEmitEvent(new AfterDeleteEvent(objectToRemove)); @@ -653,9 +659,14 @@ public class CouchbaseTemplate implements CouchbaseOperations, ApplicationEventP execute(new BucketCallback() { @Override public Boolean doInBucket() { - RawJsonDocument deletedDoc = client.remove(converted.getId(), persistTo, replicateTo - , RawJsonDocument.class); - return deletedDoc != null; + try { + RawJsonDocument deletedDoc = client.remove(converted.getId(), persistTo, replicateTo + , RawJsonDocument.class); + return deletedDoc != null; + } catch (Exception e) { + handleWriteResultError("Delete document failed: " + e.getMessage(), e); + return false; //this could be skipped if WriteResultChecking.EXCEPTION + } } }); maybeEmitEvent(new AfterDeleteEvent(objectToRemove));