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