This is an automated email from the ASF dual-hosted git repository.

adoroszlai pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 66b6f7f  AMBARI-25039. Parse error should be reported as Bad Request 
(#2718)
66b6f7f is described below

commit 66b6f7f7f061b8d19589378e7d0876a1495bfb62
Author: Doroszlai, Attila <6454655+adorosz...@users.noreply.github.com>
AuthorDate: Thu Dec 13 16:07:36 2018 +0100

    AMBARI-25039. Parse error should be reported as Bad Request (#2718)
---
 .../server/controller/internal/ServiceResourceProvider.java      | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
index 48b77af..751ca0e 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
@@ -17,6 +17,7 @@
  */
 package org.apache.ambari.server.controller.internal;
 
+import java.io.UncheckedIOException;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -79,6 +80,7 @@ import org.apache.ambari.server.state.StackId;
 import org.apache.ambari.server.state.State;
 import org.apache.ambari.server.topology.STOMPComponentsDeleteHandler;
 import org.apache.ambari.server.topology.addservice.AddServiceOrchestrator;
+import org.apache.ambari.server.utils.LoggingPreconditions;
 import org.apache.ambari.spi.RepositoryType;
 import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
@@ -96,6 +98,7 @@ import com.google.inject.assistedinject.AssistedInject;
 public class ServiceResourceProvider extends 
AbstractControllerResourceProvider {
 
   private static final Logger LOG = 
LoggerFactory.getLogger(ServiceResourceProvider.class);
+  private static final LoggingPreconditions CHECK = new 
LoggingPreconditions(LOG);
 
   public static final String SERVICE_CLUSTER_NAME_PROPERTY_ID = 
PropertyHelper.getPropertyId(
       "ServiceInfo", "cluster_name");
@@ -1246,7 +1249,11 @@ public class ServiceResourceProvider extends 
AbstractControllerResourceProvider
   }
 
   private static AddServiceRequest createAddServiceRequest(Map<String, String> 
requestInfoProperties) {
-    return 
AddServiceRequest.of(requestInfoProperties.get(Request.REQUEST_INFO_BODY_PROPERTY));
+    try {
+      return 
AddServiceRequest.of(requestInfoProperties.get(Request.REQUEST_INFO_BODY_PROPERTY));
+    } catch (UncheckedIOException e) {
+      return CHECK.wrapInUnchecked(e, IllegalArgumentException::new, "Could 
not parse input as valid Add Service request: " + e.getCause().getMessage());
+    }
   }
 
 }

Reply via email to