From 56963334491068e70db0695c7fc36d9c40bfca9a Mon Sep 17 00:00:00 2001 From: Teryk Bellahsene Date: Mon, 8 Jun 2015 15:54:41 +0200 Subject: [PATCH] SONAR-6572 WS metrics/update fix error message when updating with an existing key --- .../main/java/org/sonar/server/metric/ws/UpdateAction.java | 5 +++-- .../java/org/sonar/server/metric/ws/UpdateActionTest.java | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java index ecd309165d8..4b3f8e7852c 100644 --- a/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java +++ b/server/sonar-server/src/main/java/org/sonar/server/metric/ws/UpdateAction.java @@ -183,9 +183,10 @@ public class UpdateAction implements MetricsWsAction { } private void checkNoOtherMetricWithTargetKey(DbSession dbSession, MetricDto metricInDb, MetricDto template) { - MetricDto metricWithTargetKey = dbClient.metricDao().selectNullableByKey(dbSession, template.getKey()); + String targetKey = template.getKey(); + MetricDto metricWithTargetKey = dbClient.metricDao().selectNullableByKey(dbSession, targetKey); if (isMetricFoundInDb(metricWithTargetKey) && !metricInDb.getId().equals(metricWithTargetKey.getId())) { - throw new ServerException(HttpURLConnection.HTTP_CONFLICT, "A me metric exists with the key: " + metricInDb.getKey()); + throw new ServerException(HttpURLConnection.HTTP_CONFLICT, String.format("The key '%s' is already used by an existing metric.", targetKey)); } } diff --git a/server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java b/server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java index 59a4ff55d0d..8a8a9d75bc8 100644 --- a/server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java +++ b/server/sonar-server/src/test/java/org/sonar/server/metric/ws/UpdateActionTest.java @@ -143,6 +143,7 @@ public class UpdateActionTest { @Test public void fail_when_changing_key_for_an_existing_one() throws Exception { expectedException.expect(ServerException.class); + expectedException.expectMessage("The key 'metric-key' is already used by an existing metric."); insertMetric(newDefaultMetric().setKey("metric-key")); int id = insertMetric(newDefaultMetric().setKey("another-key")); -- 2.39.5