Browse Source

AMBARI-21173. Not able to start Yarn services after restoring the configs to initial value.(vbrodetskyi)

Vitaly Brodetskyi 8 năm trước cách đây
mục cha
commit
86c7f92c31

+ 7 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java

@@ -1806,12 +1806,18 @@ public class ClusterImpl implements Cluster {
     if (serviceConfigEntity.getGroupId() == null) {
       Collection<String> configTypes = serviceConfigTypes.get(serviceName);
       List<ClusterConfigEntity> enabledConfigs = clusterDAO.getEnabledConfigsByTypes(clusterId, configTypes);
+      List<ClusterConfigEntity> serviceConfigEntities = serviceConfigEntity.getClusterConfigEntities();
+      ArrayList<ClusterConfigEntity> duplicatevalues = new ArrayList<ClusterConfigEntity>(serviceConfigEntities);
+      duplicatevalues.retainAll(enabledConfigs);
+      enabledConfigs.removeAll(duplicatevalues);
+      serviceConfigEntities.removeAll(duplicatevalues);
+
       for (ClusterConfigEntity enabledConfig : enabledConfigs) {
         enabledConfig.setSelected(false);
         clusterDAO.merge(enabledConfig);
       }
 
-      for (ClusterConfigEntity configEntity : serviceConfigEntity.getClusterConfigEntities()) {
+      for (ClusterConfigEntity configEntity : serviceConfigEntities) {
         configEntity.setSelected(true);
         clusterDAO.merge(configEntity);
       }