modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java | 14 ++++++---- 1 file changed, 9 insertions(+), 5 deletions(-)
New commits: commit 2791d339c9959921882881afe23764961e0d8135 Author: Joseph Marques joseph@redhat.com Date: Wed Sep 22 00:33:39 2010 -0400
enforce consistency of GroupDefinitions by controlling the merge explicitly
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java index 905688b..ca04351 100644 --- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java +++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/group/definition/GroupDefinitionManagerBean.java @@ -210,11 +210,15 @@ public class GroupDefinitionManagerBean implements GroupDefinitionManagerLocal { } }
- try { - return entityManager.merge(groupDefinition); - } catch (Exception e) { - throw new GroupDefinitionUpdateException(e); - } + // do not call entityManager.merge, it could overwrite managed fields + // merge fields explicitly to control precisely which fields get updated + attachedGroupDefinition.setName(groupDefinition.getName()); + attachedGroupDefinition.setDescription(groupDefinition.getDescription()); + attachedGroupDefinition.setRecursive(groupDefinition.isRecursive()); + attachedGroupDefinition.setExpression(groupDefinition.getExpression()); + attachedGroupDefinition.setRecalculationInterval(groupDefinition.getRecalculationInterval()); + + return attachedGroupDefinition; }
// return boolean indicating whether the name of this group definition is changing
rhq-commits@lists.fedorahosted.org