From ded97ccb90ac21aa4a0d8f8ebd0292d6cd801072 Mon Sep 17 00:00:00 2001 From: Edwin Kempin Date: Fri, 8 Jul 2016 11:50:07 +0200 Subject: [PATCH] DeleteWatchedProjects: Don't fail on delete of non-existing watch The DeleteWatchedProjects REST endpoint no longer fails if a user tries to delete a non-existing project watch. This change is done because it simplifies the implementation when project watches are stored in git. This change should have almost no impact on users of this REST endpoint. Change-Id: I17426d338a7d0a8d2412173d71713ec07f448f66 Signed-off-by: Edwin Kempin --- .../gerrit/acceptance/rest/account/WatchedProjectsIT.java | 4 ++-- .../google/gerrit/server/account/DeleteWatchedProjects.java | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/WatchedProjectsIT.java b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/WatchedProjectsIT.java index 0e1747843c..5160e8002e 100644 --- a/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/WatchedProjectsIT.java +++ b/gerrit-acceptance-tests/src/test/java/com/google/gerrit/acceptance/rest/account/WatchedProjectsIT.java @@ -111,7 +111,7 @@ public class WatchedProjectsIT extends AbstractDaemonTest { } @Test - public void deleteNonExistingProject() throws Exception { + public void deleteNonExistingProjectWatch() throws Exception { String projectName = project.get(); // Let another user watch a project @@ -131,8 +131,8 @@ public class WatchedProjectsIT extends AbstractDaemonTest { List d = Lists.newArrayList(pwi); gApi.accounts().self().deleteWatchedProjects(d); + // Check that trying to delete a non-existing watch doesn't fail setApiUser(user); - exception.expect(UnprocessableEntityException.class); gApi.accounts().self().deleteWatchedProjects(d); } diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java b/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java index 43e984011e..114e5048da 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/account/DeleteWatchedProjects.java @@ -75,11 +75,9 @@ public class DeleteWatchedProjects for (ProjectWatchInfo projectInfo : input) { AccountProjectWatch.Key key = new AccountProjectWatch.Key(accountId, new Project.NameKey(projectInfo.project), projectInfo.filter); - if (!watchedProjectsMap.containsKey(key)) { - throw new UnprocessableEntityException(projectInfo.project - + " is not currently watched by this user."); + if (watchedProjectsMap.containsKey(key)) { + watchesToDelete.add(watchedProjectsMap.get(key)); } - watchesToDelete.add(watchedProjectsMap.get(key)); } dbProvider.get().accountProjectWatches().delete(watchesToDelete); accountCache.evict(accountId);