AMBARI-22432 : Getting NPE when trying to get services information from service group (mradhakrishnan)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/35d704cb Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/35d704cb Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/35d704cb Branch: refs/heads/branch-feature-AMBARI-14714-blueprintv2 Commit: 35d704cb3aa12fcc887821ee7ccb83e11f3c878b Parents: 19513a8 Author: Madhuvanthi Radhakrishnan <mradhakrish...@hortonworks.com> Authored: Mon Nov 13 15:26:12 2017 -0800 Committer: Madhuvanthi Radhakrishnan <mradhakrish...@hortonworks.com> Committed: Mon Nov 13 15:26:12 2017 -0800 ---------------------------------------------------------------------- .../AmbariManagementControllerImpl.java | 63 ++++++++++---------- 1 file changed, 31 insertions(+), 32 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/35d704cb/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java index 80b414578..875d9b6 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java @@ -1481,19 +1481,19 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle ConfigurationResponse response = null; Config config = null; //TODO : Remove after getting rid of cluster configurations - if (request.getServiceId() == null) { - config = cluster.getConfig(request.getType(), - request.getVersionTag()); + if (request.getServiceId() != null) { + config = cluster.getConfigByServiceId(request.getType(), request.getVersionTag(), request.getServiceId()); if (null != config) { response = new ConfigurationResponse( - cluster.getClusterName(), config); + cluster.getClusterName(), config, request.getServiceId(), request.getServiceGroupId()); } } - else { - config = cluster.getConfigByServiceId(request.getType(), request.getVersionTag(), request.getServiceId()); + if (response == null) { + config = cluster.getConfig(request.getType(), + request.getVersionTag()); if (null != config) { response = new ConfigurationResponse( - cluster.getClusterName(), config, request.getServiceId(), request.getServiceGroupId()); + cluster.getClusterName(), config); } } responses.add(response); @@ -1505,9 +1505,9 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle //Get by type if (null != request.getType()) { //TODO : Remove after getting rid of cluster configurations - if (request.getServiceId() == null) { - configs = cluster.getConfigsByType( - request.getType()); + if (request.getServiceId() != null) { + configs = cluster.getConfigsByServiceIdType( + request.getType(), request.getServiceId()); if (null != configs) { for (Entry<String, Config> entry : configs.entrySet()) { Config config = entry.getValue(); @@ -1517,14 +1517,14 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle config.getTag(), entry.getValue().getVersion(), includeProps ? config.getProperties() : new HashMap<>(), includeProps ? config.getPropertiesAttributes() : new HashMap<>(), - config.getPropertiesTypes()); + config.getPropertiesTypes(), request.getServiceId(), request.getServiceGroupId()); responses.add(response); } } } - else { - configs = cluster.getConfigsByServiceIdType( - request.getType(), request.getServiceId()); + if (responses == null || responses.isEmpty()) { + configs = cluster.getConfigsByType( + request.getType()); if (null != configs) { for (Entry<String, Config> entry : configs.entrySet()) { Config config = entry.getValue(); @@ -1534,42 +1534,41 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle config.getTag(), entry.getValue().getVersion(), includeProps ? config.getProperties() : new HashMap<>(), includeProps ? config.getPropertiesAttributes() : new HashMap<>(), - config.getPropertiesTypes(), request.getServiceId(), request.getServiceGroupId()); + config.getPropertiesTypes()); responses.add(response); } } } - - } - else { + } else { // !!! all configuration Collection<Config> all = null; //TODO : Remove after getting rid of cluster configurations - if (request.getServiceId() == null) { - all = cluster.getAllConfigs(); - for (Config config : all) { - response = new ConfigurationResponse( - cluster.getClusterName(), config.getStackId(), config.getType(), - config.getTag(), config.getVersion(), - includeProps ? config.getProperties() : new HashMap<>(), - includeProps ? config.getPropertiesAttributes() : new HashMap<>(), - config.getPropertiesTypes()); - responses.add(response); + if (request.getServiceId() != null) { + all = cluster.getConfigsByServiceId(request.getServiceId()); + if (all != null) { + for (Config config : all) { + response = new ConfigurationResponse( + cluster.getClusterName(), config.getStackId(), config.getType(), + config.getTag(), config.getVersion(), + includeProps ? config.getProperties() : new HashMap<>(), + includeProps ? config.getPropertiesAttributes() : new HashMap<>(), + config.getPropertiesTypes(), request.getServiceId(), request.getServiceGroupId()); + responses.add(response); + } } } - else { - all = cluster.getConfigsByServiceId(request.getServiceId()); + if (responses == null || responses.isEmpty()) { + all = cluster.getAllConfigs(); for (Config config : all) { response = new ConfigurationResponse( cluster.getClusterName(), config.getStackId(), config.getType(), config.getTag(), config.getVersion(), includeProps ? config.getProperties() : new HashMap<>(), includeProps ? config.getPropertiesAttributes() : new HashMap<>(), - config.getPropertiesTypes(), request.getServiceId(), request.getServiceGroupId()); + config.getPropertiesTypes()); responses.add(response); } } - } } return responses;