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);