Repository: ambari Updated Branches: refs/heads/branch-2.5 0b3b6c3df -> 5ec8d4b09
AMBARI-18296. Database Consistency Check Fails With NPE With Missing Service From Stack.(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5ec8d4b0 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5ec8d4b0 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5ec8d4b0 Branch: refs/heads/branch-2.5 Commit: 5ec8d4b09431d38126a5fb1e0d79031831487222 Parents: 0b3b6c3 Author: Vitaly Brodetskyi <vbrodets...@hortonworks.com> Authored: Sat Sep 3 03:53:43 2016 +0300 Committer: Vitaly Brodetskyi <vbrodets...@hortonworks.com> Committed: Sat Sep 3 03:53:43 2016 +0300 ---------------------------------------------------------------------- .../server/checks/DatabaseConsistencyCheckHelper.java | 12 +++++++++--- .../checks/DatabaseConsistencyCheckHelperTest.java | 6 +++--- 2 files changed, 12 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/5ec8d4b0/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java index 36a2d99..fa42e8a 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java @@ -540,9 +540,15 @@ public class DatabaseConsistencyCheckHelper { Map<String, ServiceInfo> serviceInfoMap = ambariMetaInfo.getServices(stackName, stackVersion); for (String serviceName : serviceNames) { ServiceInfo serviceInfo = serviceInfoMap.get(serviceName); - Set<String> configTypes = serviceInfo.getConfigTypeAttributes().keySet(); - for (String configType : configTypes) { - stackServiceConfigs.put(serviceName, configType); + if (serviceInfo != null) { + Set<String> configTypes = serviceInfo.getConfigTypeAttributes().keySet(); + for (String configType : configTypes) { + stackServiceConfigs.put(serviceName, configType); + } + } else { + LOG.warn("Service {} is not available for stack {} in cluster {}", + serviceName, stackName + "-" + stackVersion, clusterName); + warningAvailable = true; } } http://git-wip-us.apache.org/repos/asf/ambari/blob/5ec8d4b0/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java index a7c77e1..86a57c5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelperTest.java @@ -249,9 +249,9 @@ public class DatabaseConsistencyCheckHelperTest { expect(mockHDFSServiceInfo.getConfigTypeAttributes()).andReturn(configAttributes); expect(mockAmbariMetainfo.getServices("HDP", "2.2")).andReturn(services); - expect(serviceConfigResultSet.next()).andReturn(true); - expect(serviceConfigResultSet.getString("service_name")).andReturn("HDFS"); - expect(serviceConfigResultSet.getString("type_name")).andReturn("core-site"); + expect(serviceConfigResultSet.next()).andReturn(true).times(2); + expect(serviceConfigResultSet.getString("service_name")).andReturn("HDFS").andReturn("HBASE"); + expect(serviceConfigResultSet.getString("type_name")).andReturn("core-site").andReturn("hbase-env"); expect(stackResultSet.next()).andReturn(true); expect(stackResultSet.getString("stack_name")).andReturn("HDP"); expect(stackResultSet.getString("stack_version")).andReturn("2.2");