]> source.dussan.org Git - sonarqube.git/commitdiff
Request does not log errors. It's WebServiceEngine responsability 1180/head
authorTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Fri, 26 Aug 2016 13:51:37 +0000 (15:51 +0200)
committerTeryk Bellahsene <teryk.bellahsene@sonarsource.com>
Fri, 26 Aug 2016 14:04:06 +0000 (16:04 +0200)
sonar-plugin-api/src/main/java/org/sonar/api/server/ws/internal/ValidatingRequest.java
sonar-plugin-api/src/test/java/org/sonar/api/server/ws/RequestTest.java

index 389c6e62d3aeff5daa3decc9809ddb55af5f45f4..ea6bb59ee80ece86f4575e50ef40ee450ee71d2d 100644 (file)
@@ -32,8 +32,8 @@ import org.apache.commons.lang.StringUtils;
 import org.sonar.api.server.ws.LocalConnector;
 import org.sonar.api.server.ws.Request;
 import org.sonar.api.server.ws.WebService;
-import org.sonar.api.utils.log.Loggers;
 
+import static com.google.common.base.Preconditions.checkArgument;
 import static com.google.common.base.Preconditions.checkNotNull;
 import static java.util.Collections.emptyList;
 import static java.util.Collections.singletonList;
@@ -137,26 +137,16 @@ public abstract class ValidatingRequest extends Request {
 
   @CheckForNull
   private String readParamOrDefaultValue(String key, @Nullable WebService.Param definition) {
-    if (definition == null) {
-      String message = String.format("BUG - parameter '%s' is undefined for action '%s'", key, action.key());
-      Loggers.get(getClass()).error(message);
-      throw new IllegalArgumentException(message);
-    }
+    checkArgument(definition != null, "BUG - parameter '%s' is undefined for action '%s'", key, action.key());
+
     String deprecatedKey = definition.deprecatedKey();
     String value = deprecatedKey != null ? StringUtils.defaultString(readParam(deprecatedKey), readParam(key)) : readParam(key);
     value = StringUtils.defaultString(value, definition.defaultValue());
-    if (value == null) {
-      return null;
-    }
-    return value;
+    return value == null ? null : value;
   }
 
   private List<String> readMultiParamOrDefaultValue(String key, @Nullable WebService.Param definition) {
-    if (definition == null) {
-      String message = String.format("BUG - parameter '%s' is undefined for action '%s'", key, action.key());
-      Loggers.get(getClass()).error(message);
-      throw new IllegalArgumentException(message);
-    }
+    checkArgument(definition != null, "BUG - parameter '%s' is undefined for action '%s'", key, action.key());
 
     List<String> keyValues = readMultiParam(key);
     if (!keyValues.isEmpty()) {
index d5580b1681a8da3d23f0d8f6d8b316cf44360449..fa3605d0935fc21554067777895d81aa963b2aa0 100644 (file)
@@ -258,6 +258,14 @@ public class RequestTest {
     underTest.param("unknown");
   }
 
+  @Test
+  public void fail_if_multi_param_is_not_defined() {
+    expectedException.expect(IllegalArgumentException.class);
+    expectedException.expectMessage("BUG - parameter 'unknown' is undefined for action 'my_action'");
+
+    underTest.multiParam("unknown");
+  }
+
   @Test
   public void verify_possible_values() {
     underTest.setParam("has_possible_values", "foo");