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 <[email protected]>
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());
+ }
}
}