From b5ae111787c0ac5e3a9b7dea4f8a9718f76181cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20Basl=C3=A9?= Date: Wed, 25 May 2016 18:39:32 +0200 Subject: [PATCH] DATACOUCH-229 - Check N1QL error codes rather than message This should avoid problems when the message changes on the server side (like in Couchbase Server 4.5). --- .../data/couchbase/repository/support/IndexManager.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/springframework/data/couchbase/repository/support/IndexManager.java b/src/main/java/org/springframework/data/couchbase/repository/support/IndexManager.java index e455318d..5619817b 100644 --- a/src/main/java/org/springframework/data/couchbase/repository/support/IndexManager.java +++ b/src/main/java/org/springframework/data/couchbase/repository/support/IndexManager.java @@ -172,7 +172,8 @@ public class IndexManager { if (json == SUCCESS_MARKER) { LOGGER.debug("N1QL primary index created for repository {}", metadata.getRepositoryInterface().getSimpleName()); return Observable.empty(); - } else if (json.getString("msg").contains("Index #primary already exist")) { + } else if (json.getString("msg").contains("Index #primary already exist") || + (json.containsKey("code") && json.getLong("code") == 4300L)) { LOGGER.debug("Primary index already exist, skipping"); return Observable.empty(); //ignore, the index already exist } else { @@ -209,7 +210,8 @@ public class IndexManager { if (json == SUCCESS_MARKER) { LOGGER.debug("N1QL secondary index created for repository {}", metadata.getRepositoryInterface().getSimpleName()); return Observable.empty(); - } else if (json.getString("msg").contains("Index " + indexName + " already exist")) { + } else if (json.getString("msg").contains("Index " + indexName + " already exist") || + (json.containsKey("code") && json.getLong("code") == 4300L)) { LOGGER.debug("Secondary index already exist, skipping"); return Observable.empty(); //ignore, the index already exist } else {