aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-02 14:37:02 +0200
committerJulien Lancelot <julien.lancelot@sonarsource.com>2014-05-02 14:37:14 +0200
commit13d7c8d2c4f3b5de9c423ba802fde9ac843e23d8 (patch)
tree4c3e9d5279e6de9eaa16cf046b00619ef2caf96f /sonar-server
parenta4a07ed91db0f3bd927517caef50ba44648c79ed (diff)
downloadsonarqube-13d7c8d2c4f3b5de9c423ba802fde9ac843e23d8.tar.gz
sonarqube-13d7c8d2c4f3b5de9c423ba802fde9ac843e23d8.zip
SONAR-5262 Fail to delete action plan having issues on deleted component
Diffstat (limited to 'sonar-server')
-rw-r--r--sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java17
-rw-r--r--sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java22
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/empty.xml (renamed from sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_component_id_if_unknown_component.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_component_id_from_db.xml (renamed from sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_component_id_from_db.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_project_id_from_db.xml (renamed from sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_project_id_from_db.xml)0
-rw-r--r--sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_project_id_if_unknown_component.xml1
6 files changed, 18 insertions, 22 deletions
diff --git a/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java b/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java
index 81681492182..a3e9321d215 100644
--- a/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java
+++ b/sonar-server/src/main/java/org/sonar/server/issue/ServerIssueStorage.java
@@ -28,8 +28,6 @@ import org.sonar.core.resource.ResourceDao;
import org.sonar.core.resource.ResourceDto;
import org.sonar.core.resource.ResourceQuery;
-import javax.annotation.Nullable;
-
/**
* @since 3.6
*/
@@ -45,20 +43,19 @@ public class ServerIssueStorage extends IssueStorage implements ServerComponent
@Override
protected long componentId(DefaultIssue issue) {
ResourceDto resourceDto = resourceDao.getResource(ResourceQuery.create().setKey(issue.componentKey()));
- validate(issue, resourceDto);
+ if (resourceDto == null) {
+ throw new IllegalStateException("Unknown component: " + issue.componentKey());
+ }
return resourceDto.getId();
}
@Override
protected long projectId(DefaultIssue issue) {
- ResourceDto resourceDto = resourceDao.getRootProjectByComponentKey(issue.componentKey());
- validate(issue, resourceDto);
- return resourceDto.getId();
- }
-
- private void validate(DefaultIssue issue, @Nullable ResourceDto resourceDto) {
+ ResourceDto resourceDto = resourceDao.getResource(ResourceQuery.create().setKey(issue.projectKey()));
if (resourceDto == null) {
- throw new IllegalStateException("Unknown component: " + issue.componentKey());
+ throw new IllegalStateException("Unknown project: " + issue.projectKey());
}
+ return resourceDto.getId();
}
+
}
diff --git a/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java b/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java
index b667f9ea313..03978792abd 100644
--- a/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java
+++ b/sonar-server/src/test/java/org/sonar/server/issue/ServerIssueStorageTest.java
@@ -37,8 +37,8 @@ import static org.fest.assertions.Fail.fail;
public class ServerIssueStorageTest extends AbstractDaoTestCase {
@Test
- public void should_load_component_id_from_db() throws Exception {
- setupData("should_load_component_id_from_db");
+ public void load_component_id_from_db() throws Exception {
+ setupData("load_component_id_from_db");
ServerIssueStorage storage = new ServerIssueStorage(getMyBatis(), new FakeRuleFinder(), new ResourceDao(getMyBatis()));
long componentId = storage.componentId(new DefaultIssue().setComponentKey("struts:Action.java"));
@@ -47,8 +47,8 @@ public class ServerIssueStorageTest extends AbstractDaoTestCase {
}
@Test
- public void should_fail_to_load_component_id_if_unknown_component() throws Exception {
- setupData("should_fail_to_load_component_id_if_unknown_component");
+ public void fail_to_load_component_id_if_unknown_component() throws Exception {
+ setupData("empty");
ServerIssueStorage storage = new ServerIssueStorage(getMyBatis(), new FakeRuleFinder(), new ResourceDao(getMyBatis()));
try {
@@ -60,25 +60,25 @@ public class ServerIssueStorageTest extends AbstractDaoTestCase {
}
@Test
- public void should_load_project_id_from_db() throws Exception {
- setupData("should_load_project_id_from_db");
+ public void load_project_id_from_db() throws Exception {
+ setupData("load_project_id_from_db");
ServerIssueStorage storage = new ServerIssueStorage(getMyBatis(), new FakeRuleFinder(), new ResourceDao(getMyBatis()));
- long projectId = storage.projectId(new DefaultIssue().setComponentKey("struts:Action.java"));
+ long projectId = storage.projectId(new DefaultIssue().setProjectKey("struts"));
assertThat(projectId).isEqualTo(1);
}
@Test
- public void should_fail_to_load_project_id_if_unknown_component() throws Exception {
- setupData("should_fail_to_load_project_id_if_unknown_component");
+ public void fail_to_load_project_id_if_unknown_component() throws Exception {
+ setupData("empty");
ServerIssueStorage storage = new ServerIssueStorage(getMyBatis(), new FakeRuleFinder(), new ResourceDao(getMyBatis()));
try {
- storage.projectId(new DefaultIssue().setComponentKey("struts:Action.java"));
+ storage.projectId(new DefaultIssue().setProjectKey("struts"));
fail();
} catch (Exception e) {
- assertThat(e).hasMessage("Unknown component: struts:Action.java");
+ assertThat(e).hasMessage("Unknown project: struts");
}
}
diff --git a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_component_id_if_unknown_component.xml b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/empty.xml
index 5ed00ba028b..5ed00ba028b 100644
--- a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_component_id_if_unknown_component.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/empty.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_component_id_from_db.xml b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_component_id_from_db.xml
index cf7e75fd7f7..cf7e75fd7f7 100644
--- a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_component_id_from_db.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_component_id_from_db.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_project_id_from_db.xml b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_project_id_from_db.xml
index 1eb4ff00c26..1eb4ff00c26 100644
--- a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_load_project_id_from_db.xml
+++ b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/load_project_id_from_db.xml
diff --git a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_project_id_if_unknown_component.xml b/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_project_id_if_unknown_component.xml
deleted file mode 100644
index 5ed00ba028b..00000000000
--- a/sonar-server/src/test/resources/org/sonar/server/issue/ServerIssueStorageTest/should_fail_to_load_project_id_if_unknown_component.xml
+++ /dev/null
@@ -1 +0,0 @@
-<dataset></dataset> \ No newline at end of file