You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ao...@apache.org on 2015/05/27 15:56:05 UTC

ambari git commit: AMBARI-11416. Fix Coverity Defects: Null pointer dereferences (aonishuk)

Repository: ambari
Updated Branches:
  refs/heads/trunk 47f26687d -> 6df4da168


AMBARI-11416. Fix Coverity Defects: Null pointer dereferences (aonishuk)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/6df4da16
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/6df4da16
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/6df4da16

Branch: refs/heads/trunk
Commit: 6df4da1683c56b0f8facc6fb5d33529fd9781fdb
Parents: 47f2668
Author: Andrew Onishuk <ao...@hortonworks.com>
Authored: Wed May 27 16:55:57 2015 +0300
Committer: Andrew Onishuk <ao...@hortonworks.com>
Committed: Wed May 27 16:55:57 2015 +0300

----------------------------------------------------------------------
 .../ambari/server/api/predicate/QueryLexer.java |  2 +-
 .../server/api/predicate/QueryParser.java       |  4 +-
 .../server/api/query/JpaPredicateVisitor.java   | 30 ++++-----
 .../persistence/PersistenceManagerImpl.java     | 44 +++++++------
 .../AmbariManagementControllerImpl.java         | 20 +++---
 ...atibleRepositoryVersionResourceProvider.java |  2 +-
 .../RepositoryVersionResourceProvider.java      |  2 +-
 .../ganglia/GangliaPropertyProvider.java        | 33 +++++-----
 .../server/orm/dao/AlertDefinitionDAO.java      | 22 +++----
 .../ambari/server/stack/ComponentModule.java    | 68 ++++++++++----------
 .../server/stack/ConfigurationModule.java       | 29 +++++----
 .../ambari/server/state/ConfigHelper.java       | 32 ++++-----
 .../ambari/server/state/host/HostImpl.java      | 13 ++--
 .../ambari/server/topology/HostRequest.java     |  2 +-
 .../topology/RequiredPasswordValidator.java     | 10 ++-
 .../ambari/server/utils/VersionUtils.java       | 18 ++++--
 .../apache/ambari/server/view/ViewRegistry.java |  3 +
 .../server/actionmanager/TestActionManager.java |  3 +-
 .../ambari/server/agent/TestActionQueue.java    |  2 +
 .../ResourceInstanceFactoryImplTest.java        |  2 +
 .../AmbariManagementControllerTest.java         |  2 +-
 .../ganglia/GangliaPropertyProviderTest.java    |  4 +-
 .../security/authorization/TestUsers.java       |  1 +
 .../kerberos/KerberosOperationHandlerTest.java  | 31 ++++-----
 .../ambari/server/state/ConfigGroupTest.java    |  1 +
 .../ambari/server/utils/TestStageUtils.java     |  4 +-
 .../ambari/server/utils/TestVersionUtils.java   | 10 +--
 27 files changed, 217 insertions(+), 177 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryLexer.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryLexer.java b/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryLexer.java
index cdfd72d..afaae58 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryLexer.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryLexer.java
@@ -647,7 +647,7 @@ public class QueryLexer {
       String tokenValue = token;
       if (ctx.getBracketScore() > 0) {
         Deque<Token> intermediateTokens = ctx.getIntermediateTokens();
-        if (! intermediateTokens.isEmpty()) {
+        if (intermediateTokens !=null && !intermediateTokens.isEmpty()) {
           Token lastToken = intermediateTokens.peek();
           if (lastToken.getType() == Token.TYPE.VALUE_OPERAND) {
             intermediateTokens.pop();

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryParser.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryParser.java b/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryParser.java
index 629fcba..3af90ba 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryParser.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/predicate/QueryParser.java
@@ -500,7 +500,9 @@ public class QueryParser {
     @Override
     public int _handleToken(ParseContext ctx) throws InvalidQueryException {
       Token token = ctx.getTokens()[ctx.getCurrentTokensIndex()];
-      ctx.getPrecedingExpression().setRightOperand(token.getValue());
+      if (ctx.getPrecedingExpression() != null) {
+        ctx.getPrecedingExpression().setRightOperand(token.getValue());
+      }
 
       return 1;
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java b/ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java
index 75ca2d2..3a8a631 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/query/JpaPredicateVisitor.java
@@ -227,24 +227,24 @@ public abstract class JpaPredicateVisitor<T> implements PredicateVisitor {
     for (int i = 0; i < predicates.length; i++) {
       PredicateHelper.visit(predicates[i], this);
     }
-
+    javax.persistence.criteria.Predicate jpaPredicate = null;
     // the list is done; deque and apply logical AND or OR
     predicateList = m_queue.pollLast();
+    if (predicateList != null) {
+      javax.persistence.criteria.Predicate[] array = new javax.persistence.criteria.Predicate[predicateList.size()];
+      array = predicateList.toArray(array);
+
+      if ("AND".equals(operator)) {
+        jpaPredicate = m_builder.and(array);
+      } else {
+        jpaPredicate = m_builder.or(array);
+      }
 
-    javax.persistence.criteria.Predicate jpaPredicate = null;
-    javax.persistence.criteria.Predicate[] array = new javax.persistence.criteria.Predicate[predicateList.size()];
-    array = predicateList.toArray(array);
-
-    if ("AND".equals(operator)) {
-      jpaPredicate = m_builder.and(array);
-    } else {
-      jpaPredicate = m_builder.or(array);
-    }
-
-    if (null == m_queue.peekLast()) {
-      m_lastPredicate = jpaPredicate;
-    } else {
-      m_queue.peekLast().add(jpaPredicate);
+      if (null == m_queue.peekLast()) {
+        m_lastPredicate = jpaPredicate;
+      } else {
+        m_queue.peekLast().add(jpaPredicate);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
index 2013fe4..4db5611 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/persistence/PersistenceManagerImpl.java
@@ -49,30 +49,34 @@ public class PersistenceManagerImpl implements PersistenceManager {
 
   @Override
   public RequestStatus create(ResourceInstance resource, RequestBody requestBody)
-      throws UnsupportedPropertyException,
-             SystemException,
-             ResourceAlreadyExistsException,
-             NoSuchParentResourceException {
-
-    Map<Resource.Type, String> mapResourceIds = resource.getKeyValueMap();
-    Resource.Type type = resource.getResourceDefinition().getType();
-    Schema schema = m_controller.getSchema(type);
-
-    Set<NamedPropertySet> setProperties = requestBody.getNamedPropertySets();
-    if (setProperties.size() == 0) {
-      requestBody.addPropertySet(new NamedPropertySet("", new HashMap<String, Object>()));
-    }
+          throws UnsupportedPropertyException,
+          SystemException,
+          ResourceAlreadyExistsException,
+          NoSuchParentResourceException {
+    if (resource != null) {
+
+      Map<Resource.Type, String> mapResourceIds = resource.getKeyValueMap();
+      Resource.Type type = resource.getResourceDefinition().getType();
+      Schema schema = m_controller.getSchema(type);
+
+      Set<NamedPropertySet> setProperties = requestBody.getNamedPropertySets();
+      if (setProperties.isEmpty()) {
+        requestBody.addPropertySet(new NamedPropertySet("", new HashMap<String, Object>()));
+      }
 
-    for (NamedPropertySet propertySet : setProperties) {
-      for (Map.Entry<Resource.Type, String> entry : mapResourceIds.entrySet()) {
-        Map<String, Object> mapProperties = propertySet.getProperties();
-        String property = schema.getKeyPropertyId(entry.getKey());
-        if (!mapProperties.containsKey(property)) {
-          mapProperties.put(property, entry.getValue());
+      for (NamedPropertySet propertySet : setProperties) {
+        for (Map.Entry<Resource.Type, String> entry : mapResourceIds.entrySet()) {
+          Map<String, Object> mapProperties = propertySet.getProperties();
+          String property = schema.getKeyPropertyId(entry.getKey());
+          if (!mapProperties.containsKey(property)) {
+            mapProperties.put(property, entry.getValue());
+          }
         }
       }
+      return m_controller.createResources(type, createControllerRequest(requestBody));
+    } else {
+      throw new NoSuchParentResourceException("Resource is null");
     }
-    return m_controller.createResources(type, createControllerRequest(requestBody));
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/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 5b902d5..792b6fe 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
@@ -2349,18 +2349,19 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
 
   @Override
   public Set<StackConfigurationDependencyResponse> getStackConfigurationDependencies(
-      Set<StackConfigurationDependencyRequest> requests) throws AmbariException {
-      Set<StackConfigurationDependencyResponse> response =
-        new HashSet<StackConfigurationDependencyResponse>();
+          Set<StackConfigurationDependencyRequest> requests) throws AmbariException {
+    Set<StackConfigurationDependencyResponse> response
+            = new HashSet<StackConfigurationDependencyResponse>();
+    if (requests != null) {
       for (StackConfigurationDependencyRequest request : requests) {
 
-        String stackName    = request.getStackName();
+        String stackName = request.getStackName();
         String stackVersion = request.getStackVersion();
-        String serviceName  = request.getServiceName();
+        String serviceName = request.getServiceName();
         String propertyName = request.getPropertyName();
 
-        Set<StackConfigurationDependencyResponse> stackConfigurations =
-          getStackConfigurationDependencies(request);
+        Set<StackConfigurationDependencyResponse> stackConfigurations
+                = getStackConfigurationDependencies(request);
 
         for (StackConfigurationDependencyResponse dependencyResponse : stackConfigurations) {
           dependencyResponse.setStackName(stackName);
@@ -2370,8 +2371,9 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
         }
         response.addAll(stackConfigurations);
       }
-
-      return response;  }
+    }
+    return response;
+  }
 
   private Set<StackConfigurationDependencyResponse> getStackConfigurationDependencies(StackConfigurationDependencyRequest request) throws AmbariException {
     Set<StackConfigurationDependencyResponse> response =

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CompatibleRepositoryVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CompatibleRepositoryVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CompatibleRepositoryVersionResourceProvider.java
index add4285..6344aa2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CompatibleRepositoryVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/CompatibleRepositoryVersionResourceProvider.java
@@ -114,7 +114,7 @@ public class CompatibleRepositoryVersionResourceProvider extends ReadOnlyResourc
 
       final StackId stackId = getStackInformationFromUrl(propertyMap);
 
-      if (propertyMaps.size() == 1 && propertyMap.get(REPOSITORY_VERSION_ID_PROPERTY_ID) == null) {
+      if (stackId != null && propertyMaps.size() == 1 && propertyMap.get(REPOSITORY_VERSION_ID_PROPERTY_ID) == null) {
         requestedEntities.addAll(s_repositoryVersionDAO.findByStack(stackId));
 
         Map<String, UpgradePack> packs = s_ambariMetaInfo.get().getUpgradePacks(

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
index 9707ec9..7e9a5d3 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RepositoryVersionResourceProvider.java
@@ -188,7 +188,7 @@ public class RepositoryVersionResourceProvider extends AbstractResourceProvider
     for (Map<String, Object> propertyMap: propertyMaps) {
       final StackId stackId = getStackInformationFromUrl(propertyMap);
 
-      if (propertyMaps.size() == 1 && propertyMap.get(REPOSITORY_VERSION_ID_PROPERTY_ID) == null) {
+      if (stackId != null && propertyMaps.size() == 1 && propertyMap.get(REPOSITORY_VERSION_ID_PROPERTY_ID) == null) {
         requestedEntities.addAll(repositoryVersionDAO.findByStack(stackId));
       } else {
         final Long id;

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
index c07bc17..d2dbb11 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProvider.java
@@ -525,25 +525,28 @@ public abstract class GangliaPropertyProvider extends MetricsPropertyProvider {
      */
     private void populateResource(Resource resource, GangliaMetric gangliaMetric) {
       String metric_name = gangliaMetric.getMetric_name();
+      Set<String> propertyIdSet = null;
+      List<String> parameterList = null;
+      if (metric_name != null) {
+        propertyIdSet = metrics.get(metric_name);
+        parameterList = new LinkedList<String>();
 
-      Set<String> propertyIdSet = metrics.get(metric_name);
-      List<String> parameterList  = new LinkedList<String>();
+        if (propertyIdSet == null) {
+          for (Map.Entry<String, Set<String>> entry : metrics.entrySet()) {
 
-      if (propertyIdSet == null) {
-        for (Map.Entry<String, Set<String>> entry : metrics.entrySet()) {
+            String key = entry.getKey();
 
-          String key = entry.getKey();
+            Pattern pattern = Pattern.compile(key);
+            Matcher matcher = pattern.matcher(metric_name);
 
-          Pattern pattern = Pattern.compile(key);
-          Matcher matcher = pattern.matcher(metric_name);
-
-          if (matcher.matches()) {
-            propertyIdSet = entry.getValue();
-            // get parameters
-            for (int i = 0; i < matcher.groupCount(); ++i) {
-              parameterList.add(matcher.group(i + 1));
+            if (matcher.matches()) {
+              propertyIdSet = entry.getValue();
+              // get parameters
+              for (int i = 0; i < matcher.groupCount(); ++i) {
+                parameterList.add(matcher.group(i + 1));
+              }
+              break;
             }
-            break;
           }
         }
       }
@@ -552,7 +555,7 @@ public abstract class GangliaPropertyProvider extends MetricsPropertyProvider {
         if (metricsMap != null) {
           for (String propertyId : propertyIdSet) {
             if (propertyId != null) {
-              if (metricsMap.containsKey(propertyId)){
+              if (metricsMap.containsKey(propertyId)) {
                 if (containsArguments(propertyId)) {
                   int i = 1;
                   for (String param : parameterList) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAO.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAO.java b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAO.java
index d14c6b7..82fa48a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAO.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/AlertDefinitionDAO.java
@@ -420,18 +420,18 @@ public class AlertDefinitionDAO {
     alertDefinition = findById(alertDefinition.getDefinitionId());
     if (null != alertDefinition) {
       entityManager.remove(alertDefinition);
-    }
-
-    // publish the alert definition removal
-    AlertDefinition coerced = alertDefinitionFactory.coerce(alertDefinition);
-    if (null != coerced) {
-      AlertDefinitionDeleteEvent event = new AlertDefinitionDeleteEvent(
-          alertDefinition.getClusterId(), coerced);
 
-      eventPublisher.publish(event);
-    } else {
-      LOG.warn("Unable to broadcast alert removal event for {}",
-          alertDefinition.getDefinitionName());
+      // publish the alert definition removal
+      AlertDefinition coerced = alertDefinitionFactory.coerce(alertDefinition);
+      if (null != coerced) {
+        AlertDefinitionDeleteEvent event = new AlertDefinitionDeleteEvent(
+                alertDefinition.getClusterId(), coerced);
+
+        eventPublisher.publish(event);
+      } else {
+        LOG.warn("Unable to broadcast alert removal event for {}",
+                alertDefinition.getDefinitionName());
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
index c86073f..18c6ef3 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ComponentModule.java
@@ -55,45 +55,45 @@ public class ComponentModule extends BaseModule<ComponentModule, ComponentInfo>
 
   @Override
   public void resolve(ComponentModule parent, Map<String, StackModule> allStacks, Map<String, ServiceModule> commonServices) {
-    ComponentInfo parentInfo = parent.getModuleInfo();
-    if (parent != null){
-      if (!parent.isValid()){
+    if (parent != null) {
+      ComponentInfo parentInfo = parent.getModuleInfo();
+      if (!parent.isValid()) {
         setValid(false);
         setErrors(parent.getErrors());
       }
-    }
-    
-    if (componentInfo.getCommandScript() == null) {
-      componentInfo.setCommandScript(parentInfo.getCommandScript());
-    }
-    if (componentInfo.getDisplayName() == null) {
-      componentInfo.setDisplayName(parentInfo.getDisplayName());
-    }
-    if (componentInfo.getConfigDependencies() == null) {
-      componentInfo.setConfigDependencies(parentInfo.getConfigDependencies());
-    }
-    if (componentInfo.getClientConfigFiles() == null) {
-      componentInfo.setClientConfigFiles(parentInfo.getClientConfigFiles());
-    }
-    if (componentInfo.getClientsToUpdateConfigs() == null) {
-      componentInfo.setClientsToUpdateConfigs(parentInfo.getClientsToUpdateConfigs());
-    }
-    if (componentInfo.getCategory() == null) {
-      componentInfo.setCategory(parentInfo.getCategory());
-    }
-    if (componentInfo.getCardinality() == null) {
-      componentInfo.setCardinality(parentInfo.getCardinality());
-    }
-    componentInfo.setVersionAdvertised(parentInfo.isVersionAdvertised());
-    if (componentInfo.getAutoDeploy() == null) {
-      componentInfo.setAutoDeploy(parentInfo.getAutoDeploy());
-    }
 
-    mergeComponentDependencies(parentInfo.getDependencies(),
-        componentInfo.getDependencies());
+      if (componentInfo.getCommandScript() == null) {
+        componentInfo.setCommandScript(parentInfo.getCommandScript());
+      }
+      if (componentInfo.getDisplayName() == null) {
+        componentInfo.setDisplayName(parentInfo.getDisplayName());
+      }
+      if (componentInfo.getConfigDependencies() == null) {
+        componentInfo.setConfigDependencies(parentInfo.getConfigDependencies());
+      }
+      if (componentInfo.getClientConfigFiles() == null) {
+        componentInfo.setClientConfigFiles(parentInfo.getClientConfigFiles());
+      }
+      if (componentInfo.getClientsToUpdateConfigs() == null) {
+        componentInfo.setClientsToUpdateConfigs(parentInfo.getClientsToUpdateConfigs());
+      }
+      if (componentInfo.getCategory() == null) {
+        componentInfo.setCategory(parentInfo.getCategory());
+      }
+      if (componentInfo.getCardinality() == null) {
+        componentInfo.setCardinality(parentInfo.getCardinality());
+      }
+      componentInfo.setVersionAdvertised(parentInfo.isVersionAdvertised());
+      if (componentInfo.getAutoDeploy() == null) {
+        componentInfo.setAutoDeploy(parentInfo.getAutoDeploy());
+      }
 
-    mergeCustomCommands(parentInfo.getCustomCommands(),
-        componentInfo.getCustomCommands());
+      mergeComponentDependencies(parentInfo.getDependencies(),
+              componentInfo.getDependencies());
+
+      mergeCustomCommands(parentInfo.getCustomCommands(),
+              componentInfo.getCustomCommands());
+    }
   }
 
   @Override

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationModule.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationModule.java b/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationModule.java
index 90e7ed3..70f2547 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationModule.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/stack/ConfigurationModule.java
@@ -84,22 +84,23 @@ public class ConfigurationModule extends BaseModule<ConfigurationModule, Configu
   @Override
   public void resolve(ConfigurationModule parent, Map<String, StackModule> allStacks, Map<String, ServiceModule> commonServices) throws AmbariException {
     // merge properties also removes deleted props so should be called even if extension is disabled
-   
-    if (parent != null && parent.info != null){
-      if (!parent.isValid() || !parent.info.isValid()){
-        setValid(false);
-        info.setValid(false);
-        setErrors(parent.getErrors());
-        setErrors(parent.info.getErrors());
-        info.setErrors(parent.getErrors());
-        info.setErrors(parent.info.getErrors());
+    if (parent != null) {
+      if (parent.info != null) {
+        if (!parent.isValid() || !parent.info.isValid()) {
+          setValid(false);
+          info.setValid(false);
+          setErrors(parent.getErrors());
+          setErrors(parent.info.getErrors());
+          info.setErrors(parent.getErrors());
+          info.setErrors(parent.info.getErrors());
+        }
       }
-    }
-    
-    mergeProperties(parent);
 
-    if (isExtensionEnabled()) {
-      mergeAttributes(parent);
+      mergeProperties(parent);
+
+      if (isExtensionEnabled()) {
+        mergeAttributes(parent);
+      }
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
index ce5b634..eb1e52a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ConfigHelper.java
@@ -129,28 +129,30 @@ public class ConfigHelper {
       String tag = clusterEntry.getValue().getTag();
 
       // 1) start with cluster config
-      Config config = cluster.getConfig(type, tag);
-      if (null == config) {
-        continue;
-      }
+      if (cluster != null) {
+        Config config = cluster.getConfig(type, tag);
+        if (null == config) {
+          continue;
+        }
 
-      Map<String, String> tags = new LinkedHashMap<String, String>();
+        Map<String, String> tags = new LinkedHashMap<String, String>();
 
-      tags.put(CLUSTER_DEFAULT_TAG, config.getTag());
+        tags.put(CLUSTER_DEFAULT_TAG, config.getTag());
 
       // AMBARI-3672. Only consider Config groups for override tags
-      // tags -> (configGroupId, versionTag)
-      if (hostConfigOverrides != null) {
-        HostConfig hostConfig = hostConfigOverrides.get(config.getType());
-        if (hostConfig != null) {
-          for (Entry<Long, String> tagEntry : hostConfig
-              .getConfigGroupOverrides().entrySet()) {
-            tags.put(tagEntry.getKey().toString(), tagEntry.getValue());
+        // tags -> (configGroupId, versionTag)
+        if (hostConfigOverrides != null) {
+          HostConfig hostConfig = hostConfigOverrides.get(config.getType());
+          if (hostConfig != null) {
+            for (Entry<Long, String> tagEntry : hostConfig
+                    .getConfigGroupOverrides().entrySet()) {
+              tags.put(tagEntry.getKey().toString(), tagEntry.getValue());
+            }
           }
         }
-      }
 
-      resolved.put(type, tags);
+        resolved.put(type, tags);
+      }
     }
 
     return resolved;

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
index e35e42b..ad1a381 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java
@@ -1319,8 +1319,8 @@ public class HostImpl implements Host {
     Map<String, DesiredConfig> clusterDesiredConfigs = (cluster == null) ? new HashMap<String, DesiredConfig>() : cluster.getDesiredConfigs();
 
     if (clusterDesiredConfigs != null) {
-      for (Map.Entry<String, DesiredConfig> desiredConfigEntry :
-          clusterDesiredConfigs.entrySet()) {
+      for (Map.Entry<String, DesiredConfig> desiredConfigEntry
+              : clusterDesiredConfigs.entrySet()) {
         HostConfig hostConfig = new HostConfig();
         hostConfig.setDefaultVersionTag(desiredConfigEntry.getValue().getTag());
         hostConfigMap.put(desiredConfigEntry.getKey(), hostConfig);
@@ -1332,7 +1332,7 @@ public class HostImpl implements Host {
     if (configGroups != null && !configGroups.isEmpty()) {
       for (ConfigGroup configGroup : configGroups.values()) {
         for (Map.Entry<String, Config> configEntry : configGroup
-            .getConfigurations().entrySet()) {
+                .getConfigurations().entrySet()) {
 
           String configType = configEntry.getKey();
           // HostConfig config holds configType -> versionTag, per config group
@@ -1340,12 +1340,13 @@ public class HostImpl implements Host {
           if (hostConfig == null) {
             hostConfig = new HostConfig();
             hostConfigMap.put(configType, hostConfig);
-            hostConfig.setDefaultVersionTag(cluster.getDesiredConfigByType
-              (configType).getTag());
+            if (cluster != null) {
+              hostConfig.setDefaultVersionTag(cluster.getDesiredConfigByType(configType).getTag());
+            }
           }
           Config config = configEntry.getValue();
           hostConfig.getConfigGroupOverrides().put(configGroup.getId(),
-            config.getTag());
+                  config.getTag());
         }
       }
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java
index 9e25dfb..f63ba3f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java
@@ -203,7 +203,7 @@ public class HostRequest implements Comparable<HostRequest> {
 
       Stack stack = hostGroup.getStack();
       // if component isn't a client, add a start task
-      if (! stack.getComponentInfo(component).isClient()) {
+      if (stack!=null && !stack.getComponentInfo(component).isClient()) {
         HostRoleCommand logicalStartTask = context.createAmbariTask(
             getRequestId(), id, component, hostName, AmbariContext.TaskType.START);
         logicalTasks.put(logicalStartTask.getTaskId(), logicalStartTask);

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java
index 870d718..252b78b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java
@@ -44,12 +44,16 @@ public class RequiredPasswordValidator implements TopologyValidator {
    *                                  default is specified via 'default_password'
    */
   public void validate(ClusterTopology topology) throws InvalidTopologyException {
+    String errStr = "Missing required password properties.  Specify a value for these " +
+          "properties in the cluster or host group configurations or include 'default_password' field in request. ";
+    if (topology == null) {
+      throw new InvalidTopologyException(errStr);
+    }
+    
     Map<String, Map<String, Collection<String>>> missingPasswords = validateRequiredPasswords(topology);
 
     if (! missingPasswords.isEmpty()) {
-      throw new InvalidTopologyException("Missing required password properties.  Specify a value for these " +
-          "properties in the cluster or host group configurations or include 'default_password' field in request. " +
-          missingPasswords);
+      throw new InvalidTopologyException(errStr + missingPasswords);
     }
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
index 8796bd3..4d1fc48 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/utils/VersionUtils.java
@@ -37,9 +37,17 @@ public class VersionUtils {
    */
   public static int compareVersions(String version1, String version2, int maxLengthToCompare)
     throws IllegalArgumentException {
+    if (version1 == null){
+      throw new IllegalArgumentException("version1 cannot be null");
+    }
+    
+    if (version2 == null){
+      throw new IllegalArgumentException("version2 cannot be null");
+    }    
+    
     version1 = StringUtils.trim(version1);
     version2 = StringUtils.trim(version2);
-
+    
     if (version1.indexOf('-') >=0) {
       version1 = version1.substring(0, version1.indexOf('-'));
     }
@@ -47,11 +55,11 @@ public class VersionUtils {
       version2 = version2.substring(0, version2.indexOf('-'));
     }
 
-    if (version1 == null || version1.isEmpty()) {
-      throw new IllegalArgumentException("version1 cannot be null or empty");
+    if (version1.isEmpty()) {
+      throw new IllegalArgumentException("version1 cannot be empty");
     }
-    if (version2 == null || version2.isEmpty()) {
-      throw new IllegalArgumentException("version2 cannot be null or empty");
+    if (version2.isEmpty()) {
+      throw new IllegalArgumentException("version2 cannot be empty");
     }
     if (maxLengthToCompare < 0) {
       throw new IllegalArgumentException("maxLengthToCompare cannot be less than 0");

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
index 7395fa6..b3ae2d0 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
@@ -1540,6 +1540,9 @@ public class ViewRegistry {
       ViewConfig viewConfig = archiveUtility.getViewConfigFromExtractedArchive(extractedArchiveDirPath,
           configuration.isViewValidationEnabled());
 
+      if (viewConfig == null) {
+        setViewStatus(viewDefinition, ViewEntity.ViewStatus.ERROR, "View configuration not found");
+      } 
       viewDefinition.setConfiguration(viewConfig);
 
       if (checkViewVersions(viewDefinition, serverVersion)) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionManager.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionManager.java b/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionManager.java
index f8b3daf..27f11f7 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionManager.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/actionmanager/TestActionManager.java
@@ -53,6 +53,7 @@ import com.google.inject.Guice;
 import com.google.inject.Injector;
 import com.google.inject.persist.PersistService;
 import com.google.inject.persist.UnitOfWork;
+import static org.junit.Assert.assertNotNull;
 
 public class TestActionManager {
 
@@ -124,7 +125,7 @@ public class TestActionManager {
       "STRUCTURED_OUTPUT",
       am.getAction(requestId, stageId)
         .getHostRoleCommand(hostname, "HBASE_MASTER").getStructuredOut());
-
+    assertNotNull(db.getRequest(requestId));
     assertFalse(db.getRequest(requestId).getEndTime() == -1);
   }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
index e431eee..632750b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestActionQueue.java
@@ -27,6 +27,7 @@ import java.util.List;
 
 import org.apache.ambari.server.agent.AgentCommand.AgentCommandType;
 import org.easymock.EasyMock;
+import static org.junit.Assert.assertNotNull;
 import org.junit.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -371,6 +372,7 @@ public class TestActionQueue {
     List<AgentCommand> commands = queue.dequeue(c6401,
         AgentCommandType.ALERT_DEFINITION_COMMAND);
 
+    assertNotNull(commands);
     assertEquals(3, commands.size());
     assertEquals(4, queue.size(c6401));
     assertEquals(3, queue.size(c6402));

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImplTest.java
index 2daa273..081a6eb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/ResourceInstanceFactoryImplTest.java
@@ -22,6 +22,7 @@ import org.apache.ambari.server.controller.spi.Resource;
 import org.junit.Test;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 
 /**
  * ResourceInstanceFactoryImpl unit tests.
@@ -53,6 +54,7 @@ public class ResourceInstanceFactoryImplTest {
     ResourceDefinition resourceDefinition = ResourceInstanceFactoryImpl.getResourceDefinition(
         Resource.Type.HostKerberosIdentity, null);
 
+    assertNotNull(resourceDefinition);
     assertEquals("kerberos_identity", resourceDefinition.getSingularName());
     assertEquals("kerberos_identities", resourceDefinition.getPluralName());
     assertEquals(Resource.Type.HostKerberosIdentity, resourceDefinition.getType());

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index 00f9bed..1e4e332 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -3808,7 +3808,7 @@ public class AmbariManagementControllerTest {
     reqs.add(req1);
     updateHostAndCompareExpectedFailure(reqs, "Invalid desired stack id");
 
-    c1.setCurrentStackVersion(null);
+    c1.setCurrentStackVersion(new StackId("HDP-0.0"));
     sch1.setStackVersion(new StackId("HDP-0.1"));
     reqs.clear();
     req1 = new ServiceComponentHostRequest(clusterName, serviceName1,

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java
index 1eaa9cc..dd7f95d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/metrics/ganglia/GangliaPropertyProviderTest.java
@@ -804,7 +804,9 @@ public class GangliaPropertyProviderTest {
         }
       });
       
-
+      if (actualParam == null) {
+        return false;
+      }
       List<String> actualParamList = new ArrayList<String>(Arrays.asList(actualParam.getValue().split(",")));
       List<String> expectedParamList = new ArrayList<String>(Arrays.asList(expectedParam.getValue().split(",")));
       

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java
index 61bce55..d3eb071 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java
@@ -192,6 +192,7 @@ public class TestUsers {
     users.createGroup("group");
 
     users.setGroupLdap("group");
+    Assert.assertNotNull(users.getGroup("group"));
     Assert.assertTrue(users.getGroup("group").isLdapGroup());
 
     try {

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerTest.java
index 410eced..44a68ae 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/kerberos/KerberosOperationHandlerTest.java
@@ -147,21 +147,22 @@ public abstract class KerberosOperationHandlerTest extends EasyMockSupport {
     fis.close();
 
     File f = handler.createKeytabFile(Base64.encodeBase64String(data));
-
-    try {
-      Keytab keytab = Keytab.read(f);
-      Assert.assertNotNull(keytab);
-
-      List<KeytabEntry> entries = keytab.getEntries();
-      Assert.assertNotNull(entries);
-      Assert.assertFalse(entries.isEmpty());
-
-      for (KeytabEntry entry : entries) {
-        Assert.assertEquals(principal, entry.getPrincipalName());
-      }
-    } finally {
-      if (!f.delete()) {
-        f.deleteOnExit();
+    if (f != null) {
+      try {
+        Keytab keytab = Keytab.read(f);
+        Assert.assertNotNull(keytab);
+
+        List<KeytabEntry> entries = keytab.getEntries();
+        Assert.assertNotNull(entries);
+        Assert.assertFalse(entries.isEmpty());
+
+        for (KeytabEntry entry : entries) {
+          Assert.assertEquals(principal, entry.getPrincipalName());
+        }
+      } finally {
+        if (!f.delete()) {
+          f.deleteOnExit();
+        }
       }
     }
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java
index 9bf969c..f1de58e 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ConfigGroupTest.java
@@ -226,6 +226,7 @@ public class ConfigGroupTest {
 
     Assert.assertNull(clusters.getHostsForCluster(clusterName).get("h1"));
     // Assumes that 1L is the id of host h1, as specified in createConfigGroup
+    Assert.assertNotNull(configGroupHostMappingDAO.findByHostId(1L));
     Assert.assertTrue(configGroupHostMappingDAO.findByHostId(1L).isEmpty());
     Assert.assertFalse(configGroup.getHosts().containsKey(1L));
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
index b9e4ff0..8b6d2ae 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestStageUtils.java
@@ -301,8 +301,8 @@ public class TestStageUtils {
 
     //Treat null values
     while (pingPorts.contains(null)) {
-      int indexOfNull = pingPorts.indexOf(null);
-      pingPorts.set(indexOfNull, StageUtils.DEFAULT_PING_PORT);
+      pingPorts.remove(null);
+      pingPorts.add(StageUtils.DEFAULT_PING_PORT);
     }
 
     assertEquals(pingPorts, reindexedPorts);

http://git-wip-us.apache.org/repos/asf/ambari/blob/6df4da16/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
index 83a8de6..433d1c9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/utils/TestVersionUtils.java
@@ -94,19 +94,19 @@ public class TestVersionUtils {
   @Test
   public void testVersionCompareError() {
     expectedException.expect(IllegalArgumentException.class);
-    expectedException.expectMessage("version2 cannot be null or empty");
+    expectedException.expectMessage("version2 cannot be empty");
     VersionUtils.areVersionsEqual("1.2.3", "", false);
 
     expectedException.expect(IllegalArgumentException.class);
-    expectedException.expectMessage("version1 cannot be null or empty");
+    expectedException.expectMessage("version1 cannot be null");
     VersionUtils.areVersionsEqual(null, "", false);
 
     expectedException.expect(IllegalArgumentException.class);
-    expectedException.expectMessage("version1 cannot be null or empty");
-    VersionUtils.areVersionsEqual("", "1", false);
+    expectedException.expectMessage("version2 cannot be null");
+    VersionUtils.areVersionsEqual("", null, false);
 
     expectedException.expect(IllegalArgumentException.class);
-    expectedException.expectMessage("version1 cannot be null or empty");
+    expectedException.expectMessage("version1 cannot be empty");
     VersionUtils.compareVersions("", "1", 2);
 
     expectedException.expect(IllegalArgumentException.class);