From: Julien Lancelot Date: Wed, 3 Jul 2013 12:47:56 +0000 (+0200) Subject: SONAR-4383 Fix issue when comparing filter ids X-Git-Tag: 3.7~277 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=8b2e3993e0709e3c7af3fb9cf7031911ea9ab6d0;p=sonarqube.git SONAR-4383 Fix issue when comparing filter ids --- diff --git a/sonar-server/src/main/java/org/sonar/server/issue/IssueFilterService.java b/sonar-server/src/main/java/org/sonar/server/issue/IssueFilterService.java index a60adcdb26a..5db8808b18a 100644 --- a/sonar-server/src/main/java/org/sonar/server/issue/IssueFilterService.java +++ b/sonar-server/src/main/java/org/sonar/server/issue/IssueFilterService.java @@ -226,7 +226,7 @@ public class IssueFilterService implements ServerComponent { private void validateFilter(final DefaultIssueFilter issueFilter) { List userFilters = selectUserIssueFilters(issueFilter.user()); IssueFilterDto userFilterSameName = findFilterWithSameName(userFilters, issueFilter.name()); - if (userFilterSameName != null && userFilterSameName.getId() != issueFilter.id()) { + if (userFilterSameName != null && !userFilterSameName.getId().equals(issueFilter.id())) { throw new IllegalArgumentException("Name already exists"); } if (issueFilter.shared()) { diff --git a/sonar-server/src/test/java/org/sonar/server/issue/IssueFilterServiceTest.java b/sonar-server/src/test/java/org/sonar/server/issue/IssueFilterServiceTest.java index 3737a31fa37..6350e37a414 100644 --- a/sonar-server/src/test/java/org/sonar/server/issue/IssueFilterServiceTest.java +++ b/sonar-server/src/test/java/org/sonar/server/issue/IssueFilterServiceTest.java @@ -235,6 +235,18 @@ public class IssueFilterServiceTest { verify(issueFilterDao).update(any(IssueFilterDto.class)); } + @Test + public void should_update_own_user_filter_without_changing_anything() { + IssueFilterDto dto = new IssueFilterDto().setId(1L).setName("My Filter").setUserLogin("john"); + when(issueFilterDao.selectById(1L)).thenReturn(dto); + when(issueFilterDao.selectByUser("john")).thenReturn(newArrayList(dto)); + + DefaultIssueFilter result = service.update(new DefaultIssueFilter().setId(1L).setName("My Filter").setUser("john"), userSession); + assertThat(result.name()).isEqualTo("My Filter"); + + verify(issueFilterDao).update(any(IssueFilterDto.class)); + } + @Test public void should_remove_other_favorite_filters_if_filter_become_unshared() { when(issueFilterDao.selectById(1L)).thenReturn(new IssueFilterDto().setId(1L).setName("My Old Filter").setUserLogin("john").setShared(true));