From: Teryk Bellahsene Date: Thu, 23 Jul 2015 14:44:36 +0000 (+0200) Subject: RowNotFoundException is the default Exception at the DAO layer X-Git-Tag: 5.2-RC1~986 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=623c9e610af3404c6dbea81fbfd6a57066e819cf;p=sonarqube.git RowNotFoundException is the default Exception at the DAO layer --- diff --git a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java index 78b517317c6..cbfb688f965 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java +++ b/sonar-db/src/main/java/org/sonar/db/component/ComponentDao.java @@ -35,6 +35,7 @@ import org.sonar.api.resources.Scopes; import org.sonar.db.Dao; import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; +import org.sonar.db.util.RowNotFoundException; import static com.google.common.collect.Maps.newHashMapWithExpectedSize; @@ -43,7 +44,7 @@ public class ComponentDao implements Dao { public ComponentDto selectOrFailById(DbSession session, long id) { Optional componentDto = selectById(session, id); if (!componentDto.isPresent()) { - throw new IllegalArgumentException(String.format("Component id does not exist: %d", id)); + throw new RowNotFoundException(String.format("Component id does not exist: %d", id)); } return componentDto.get(); } @@ -59,7 +60,7 @@ public class ComponentDao implements Dao { public ComponentDto selectOrFailByUuid(DbSession session, String uuid) { Optional componentDto = selectByUuid(session, uuid); if (!componentDto.isPresent()) { - throw new IllegalArgumentException(String.format("Component with uuid '%s' not found", uuid)); + throw new RowNotFoundException(String.format("Component with uuid '%s' not found", uuid)); } return componentDto.get(); } @@ -133,10 +134,10 @@ public class ComponentDao implements Dao { return mapper(session).selectByKeys(keys); } - public ComponentDto selectNonNullByKey(DbSession session, String key) { + public ComponentDto selectOrFailByKey(DbSession session, String key) { Optional component = selectByKey(session, key); if (!component.isPresent()) { - throw new IllegalArgumentException(String.format("Component key '%s' not found", key)); + throw new RowNotFoundException(String.format("Component key '%s' not found", key)); } return component.get(); } diff --git a/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java b/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java index e5a09655ef5..2f48fe901dc 100644 --- a/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java +++ b/sonar-db/src/main/java/org/sonar/db/component/SnapshotDao.java @@ -29,6 +29,7 @@ import javax.annotation.Nullable; import org.sonar.api.resources.Scopes; import org.sonar.db.Dao; import org.sonar.db.DbSession; +import org.sonar.db.util.RowNotFoundException; public class SnapshotDao implements Dao { @@ -40,7 +41,7 @@ public class SnapshotDao implements Dao { public SnapshotDto selectOrFailById(DbSession session, long id) { SnapshotDto value = selectById(session, id); if (value == null) { - throw new IllegalArgumentException(String.format("Snapshot id does not exist: %d", id)); + throw new RowNotFoundException(String.format("Snapshot id does not exist: %d", id)); } return value; } diff --git a/sonar-db/src/main/java/org/sonar/db/measure/custom/CustomMeasureDao.java b/sonar-db/src/main/java/org/sonar/db/measure/custom/CustomMeasureDao.java index 4abe75f49ef..9a6080344d2 100644 --- a/sonar-db/src/main/java/org/sonar/db/measure/custom/CustomMeasureDao.java +++ b/sonar-db/src/main/java/org/sonar/db/measure/custom/CustomMeasureDao.java @@ -29,6 +29,7 @@ import org.sonar.api.server.ServerSide; import org.sonar.db.Dao; import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; +import org.sonar.db.util.RowNotFoundException; @ServerSide public class CustomMeasureDao implements Dao { @@ -62,7 +63,7 @@ public class CustomMeasureDao implements Dao { public CustomMeasureDto selectOrFail(DbSession session, long id) { CustomMeasureDto customMeasure = selectById(session, id); if (customMeasure == null) { - throw new IllegalArgumentException(String.format("Custom measure '%d' not found.", id)); + throw new RowNotFoundException(String.format("Custom measure '%d' not found.", id)); } return customMeasure; } diff --git a/sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java b/sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java index 171eb8b1cec..d059eb1fd9f 100644 --- a/sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java +++ b/sonar-db/src/main/java/org/sonar/db/metric/MetricDao.java @@ -37,6 +37,7 @@ import org.apache.ibatis.session.RowBounds; import org.sonar.db.Dao; import org.sonar.db.DatabaseUtils; import org.sonar.db.DbSession; +import org.sonar.db.util.RowNotFoundException; import static com.google.common.collect.Lists.newArrayList; @@ -59,7 +60,7 @@ public class MetricDao implements Dao { public MetricDto selectOrFailByKey(DbSession session, String key) { MetricDto metric = selectByKey(session, key); if (metric == null) { - throw new IllegalStateException(String.format("Metric key '%s' not found", key)); + throw new RowNotFoundException(String.format("Metric key '%s' not found", key)); } return metric; } @@ -151,7 +152,7 @@ public class MetricDao implements Dao { public MetricDto selectOrFailById(DbSession session, int id) { MetricDto metric = mapper(session).selectById(id); if (metric == null) { - throw new IllegalStateException(String.format("Metric id '%d' not found", id)); + throw new RowNotFoundException(String.format("Metric id '%d' not found", id)); } return metric; } diff --git a/sonar-db/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java b/sonar-db/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java index 13301240367..665360558fe 100644 --- a/sonar-db/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java +++ b/sonar-db/src/main/java/org/sonar/db/qualityprofile/QualityProfileDao.java @@ -34,6 +34,7 @@ import org.sonar.db.Dao; import org.sonar.db.DbSession; import org.sonar.db.MyBatis; import org.sonar.db.component.ComponentDto; +import org.sonar.db.util.RowNotFoundException; @ServerSide public class QualityProfileDao implements Dao { @@ -54,7 +55,7 @@ public class QualityProfileDao implements Dao { public QualityProfileDto selectOrFailByKey(DbSession session, String key) { QualityProfileDto dto = selectByKey(session, key); if (dto == null) { - throw new IllegalArgumentException("Quality profile not found: " + key); + throw new RowNotFoundException("Quality profile not found: " + key); } return dto; } diff --git a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java index d2199aee647..e83c616ab6e 100644 --- a/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/component/ComponentDaoTest.java @@ -30,6 +30,7 @@ import org.junit.rules.ExpectedException; import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; import org.sonar.db.DbTester; +import org.sonar.db.util.RowNotFoundException; import org.sonar.test.DbTests; import static com.google.common.collect.Lists.newArrayList; @@ -102,7 +103,7 @@ public class ComponentDaoTest { @Test public void fail_to_get_by_uuid_when_component_not_found() { - thrown.expect(IllegalArgumentException.class); + thrown.expect(RowNotFoundException.class); db.prepareDbUnit(getClass(), "shared.xml"); @@ -131,7 +132,7 @@ public class ComponentDaoTest { @Test public void fail_to_get_by_key_when_component_not_found() { - thrown.expect(IllegalArgumentException.class); + thrown.expect(RowNotFoundException.class); db.prepareDbUnit(getClass(), "shared.xml"); @@ -270,7 +271,7 @@ public class ComponentDaoTest { assertThat(result.get().isEnabled()).isFalse(); } - @Test(expected = IllegalArgumentException.class) + @Test(expected = RowNotFoundException.class) public void fail_to_get_by_id_when_project_not_found() { db.prepareDbUnit(getClass(), "shared.xml"); diff --git a/sonar-db/src/test/java/org/sonar/db/measure/custom/CustomMeasureDaoTest.java b/sonar-db/src/test/java/org/sonar/db/measure/custom/CustomMeasureDaoTest.java index 7a0805d11d6..6090ddcf783 100644 --- a/sonar-db/src/test/java/org/sonar/db/measure/custom/CustomMeasureDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/measure/custom/CustomMeasureDaoTest.java @@ -30,6 +30,7 @@ import org.junit.rules.ExpectedException; import org.sonar.api.utils.System2; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.RowNotFoundException; import org.sonar.test.DbTests; import static org.assertj.core.api.Assertions.assertThat; @@ -151,7 +152,7 @@ public class CustomMeasureDaoTest { @Test public void select_by_id_fail_if_no_measure_found() { - expectedException.expect(IllegalArgumentException.class); + expectedException.expect(RowNotFoundException.class); underTest.selectOrFail(session, 42L); } diff --git a/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java b/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java index 1e1c17b7e62..935c519b2d2 100644 --- a/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java +++ b/sonar-db/src/test/java/org/sonar/db/metric/MetricDaoTest.java @@ -28,6 +28,7 @@ import org.junit.experimental.categories.Category; import org.sonar.api.utils.System2; import org.sonar.db.DbSession; import org.sonar.db.DbTester; +import org.sonar.db.util.RowNotFoundException; import org.sonar.test.DbTests; import static org.assertj.core.api.Assertions.assertThat; @@ -81,7 +82,7 @@ public class MetricDaoTest { assertThat(result.isEnabled()).isFalse(); } - @Test(expected = IllegalStateException.class) + @Test(expected = RowNotFoundException.class) public void get_nullable_by_key() { dao.selectOrFailByKey(session, "unknown"); }