aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-plugin-api/src
diff options
context:
space:
mode:
authorSimon Brandhof <simon.brandhof@sonarsource.com>2018-06-12 12:52:27 +0200
committerSonarTech <sonartech@sonarsource.com>2018-06-14 11:50:34 +0200
commit11b5185acd1215b4eec4243caab19e4c14004e89 (patch)
tree7add216c3a7c0eaff113f7b72a383acf3107b8a1 /sonar-plugin-api/src
parenta2f45d5b6816d54db66e73bbf6d688f705b16bc3 (diff)
downloadsonarqube-11b5185acd1215b4eec4243caab19e4c14004e89.tar.gz
sonarqube-11b5185acd1215b4eec4243caab19e4c14004e89.zip
SONAR-10881 Log flooding when a WS param is not an integer as expected
Diffstat (limited to 'sonar-plugin-api/src')
-rw-r--r--sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java2
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java19
-rw-r--r--sonar-plugin-api/src/test/java/org/sonar/api/server/ws/internal/SimpleGetRequestTest.java2
3 files changed, 17 insertions, 6 deletions
diff --git a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java
index 3a97c67b92e..88f4b6f24bf 100644
--- a/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java
+++ b/sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java
@@ -216,7 +216,7 @@ public abstract class ValidatingRequest extends Request {
try {
return Integer.parseInt(value);
} catch (NumberFormatException exception) {
- throw new IllegalStateException(format("'%s' value '%s' cannot be parsed as an integer", key, value), exception);
+ throw new IllegalArgumentException(format("'%s' value '%s' cannot be parsed as an integer", key, value), exception);
}
}
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java
index d8d9562ce87..9dade321f4d 100644
--- a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java
@@ -60,7 +60,7 @@ public class RequestTest {
@Rule
public ExpectedException expectedException = ExpectedException.none();
- FakeRequest underTest = new FakeRequest();
+ private FakeRequest underTest = new FakeRequest();
@Before
public void before() {
@@ -145,6 +145,17 @@ public class RequestTest {
}
@Test
+ public void paramAsInt_throws_IAE_if_maximum_defined_and_value_not_a_number() {
+ String param = "maximum_value_param";
+ defineParameterTestAction(newParam -> newParam.setMaximumValue(10), param);
+
+ expectedException.expect(IllegalArgumentException.class);
+ expectedException.expectMessage("'maximum_value_param' value 'foo' cannot be parsed as an integer");
+
+ underTest.setParam(param, "foo").paramAsInt(param);
+ }
+
+ @Test
public void required_param_as_strings() {
underTest.setParam("a_required_string", "foo,bar");
@@ -214,7 +225,7 @@ public class RequestTest {
}
@Test
- public void param_as_int() {
+ public void paramAsInt() {
assertThat(underTest.setParam("a_number", "123").paramAsInt("a_number")).isEqualTo(123);
assertThat(underTest.setParam("a_number", "123").paramAsInt("a_number", 42)).isEqualTo(123);
assertThat(underTest.setParam("a_number", null).paramAsInt("a_number", 42)).isEqualTo(123);
@@ -609,7 +620,7 @@ public class RequestTest {
}
@Test
- public void param_as_part() throws Exception {
+ public void param_as_part() {
InputStream inputStream = mock(InputStream.class);
underTest.setPart("key", inputStream, "filename");
@@ -621,7 +632,7 @@ public class RequestTest {
}
@Test
- public void mandatory_param_as_part() throws Exception {
+ public void mandatory_param_as_part() {
expectedException.expect(IllegalArgumentException.class);
expectedException.expectMessage("The 'required_param' parameter is missing");
diff --git a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/internal/SimpleGetRequestTest.java b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/internal/SimpleGetRequestTest.java
index 3aa51ed7be1..46974bd8201 100644
--- a/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/internal/SimpleGetRequestTest.java
+++ b/sonar-plugin-api/src/test/java/org/sonar/api/server/ws/internal/SimpleGetRequestTest.java
@@ -50,7 +50,7 @@ public class SimpleGetRequestTest {
}
@Test
- public void get_part() throws Exception {
+ public void get_part() {
InputStream inputStream = mock(InputStream.class);
underTest.setPart("key", inputStream, "filename");