Repository: ambari
Updated Branches:
  refs/heads/branch-2.1 9349595d2 -> 605789848


AMBARI-12063 Config groups can't be saved in some cases (additional patch) 
(dsen)


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

Branch: refs/heads/branch-2.1
Commit: 60578984886ace765302e3fe20f279ab103baf7e
Parents: 9349595
Author: Dmytro Sen <d...@apache.org>
Authored: Thu Jul 2 00:12:16 2015 +0300
Committer: Dmytro Sen <d...@apache.org>
Committed: Thu Jul 2 00:14:51 2015 +0300

----------------------------------------------------------------------
 .../ambari/server/state/configgroup/ConfigGroupImpl.java    | 4 +++-
 .../org/apache/ambari/server/state/ConfigGroupTest.java     | 9 +++------
 2 files changed, 6 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/60578984/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
index 73df75b..f347eb6 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/configgroup/ConfigGroupImpl.java
@@ -365,6 +365,7 @@ public class ConfigGroupImpl implements ConfigGroup {
     if (isPersisted) {
       // Delete existing mappings and create new ones
       
configGroupHostMappingDAO.removeAllByGroup(configGroupEntity.getGroupId());
+      configGroupDAO.refresh(configGroupEntity);
       configGroupEntity.setConfigGroupHostMappingEntities(new 
HashSet<ConfigGroupHostMappingEntity>());
     }
 
@@ -381,13 +382,13 @@ public class ConfigGroupImpl implements ConfigGroup {
           configGroupEntity.getConfigGroupHostMappingEntities().add
                   (hostMappingEntity);
           configGroupHostMappingDAO.create(hostMappingEntity);
-          // TODO: Make sure this does not throw Nullpointer based on JPA docs
         } else {
           LOG.warn("Host seems to be deleted, cannot create host to config " +
             "group mapping, host = " + host.getHostName());
         }
       }
     }
+    // TODO: Make sure this does not throw Nullpointer based on JPA docs
     configGroupEntity = configGroupDAO.merge(configGroupEntity);
   }
 
@@ -401,6 +402,7 @@ public class ConfigGroupImpl implements ConfigGroup {
   void persistConfigMapping(ClusterEntity clusterEntity) {
     if (isPersisted) {
       
configGroupConfigMappingDAO.removeAllByGroup(configGroupEntity.getGroupId());
+      configGroupDAO.refresh(configGroupEntity);
       configGroupEntity.setConfigGroupConfigMappingEntities(new 
HashSet<ConfigGroupConfigMappingEntity>());
     }
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/60578984/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 f1de58e..5f92094 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
@@ -21,6 +21,7 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
+import com.google.inject.persist.jpa.AmbariJpaPersistModule;
 import junit.framework.Assert;
 
 import org.apache.ambari.server.AmbariException;
@@ -50,22 +51,18 @@ public class ConfigGroupTest {
   private Cluster cluster;
   private String clusterName;
   private Injector injector;
-  private AmbariMetaInfo metaInfo;
   private ConfigGroupFactory configGroupFactory;
   private ConfigFactory configFactory;
-  private HostDAO hostDAO;
   private ConfigGroupDAO configGroupDAO;
   private ConfigGroupHostMappingDAO configGroupHostMappingDAO;
 
   @Before
   public void setup() throws Exception {
-    injector  = Guice.createInjector(new InMemoryDefaultTestModule());
+    injector = Guice.createInjector(new InMemoryDefaultTestModule());
     injector.getInstance(GuiceJpaInitializer.class);
     clusters = injector.getInstance(Clusters.class);
-    metaInfo = injector.getInstance(AmbariMetaInfo.class);
     configFactory = injector.getInstance(ConfigFactory.class);
     configGroupFactory = injector.getInstance(ConfigGroupFactory.class);
-    hostDAO = injector.getInstance(HostDAO.class);
     configGroupDAO = injector.getInstance(ConfigGroupDAO.class);
     configGroupHostMappingDAO = injector.getInstance
       (ConfigGroupHostMappingDAO.class);
@@ -175,7 +172,7 @@ public class ConfigGroupTest {
 
     // Save
     configGroup.persist();
-
+    configGroup.refresh();
     configGroupEntity = configGroupDAO.findByName("NewName");
 
     Assert.assertNotNull(configGroupEntity);

Reply via email to