|
From: <cl...@hy...> - 2007-03-20 00:30:09
|
Author: clee Date: 2007-03-19 16:30:06 -0800 (Mon, 19 Mar 2007) New Revision: 3791 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=3791 Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinition.java trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionDAO.java trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java Log: [HQ-598] Remove child alert definition from the parent (global) alert definition's children bag when deleting the alert definition Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinition.java =================================================================== --- trunk/src/org/hyperic/hq/events/server/session/AlertDefinition.java 2007-03-19 22:09:51 UTC (rev 3790) +++ trunk/src/org/hyperic/hq/events/server/session/AlertDefinition.java 2007-03-20 00:30:06 UTC (rev 3791) @@ -164,6 +164,14 @@ _children = c; } + void removeChild(AlertDefinition child) { + _children.remove(child); + } + + void clearChildren() { + _children.clear(); + } + public String getDescription() { return _description; } Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionDAO.java =================================================================== --- trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionDAO.java 2007-03-19 22:09:51 UTC (rev 3790) +++ trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionDAO.java 2007-03-20 00:30:06 UTC (rev 3791) @@ -24,8 +24,6 @@ */ package org.hyperic.hq.events.server.session; -import java.util.Collection; -import java.util.Iterator; import java.util.List; import org.hyperic.dao.DAOFactory; Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java =================================================================== --- trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java 2007-03-19 22:09:51 UTC (rev 3790) +++ trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java 2007-03-20 00:30:06 UTC (rev 3791) @@ -114,11 +114,11 @@ boolean survivors = false; // If there are any children, delete them, too - for (Iterator i = alertdef.getChildrenBag().iterator(); i.hasNext();) { + for (Iterator i = alertdef.getChildren().iterator(); i.hasNext();) { AlertDefinition child = (AlertDefinition) i.next(); survivors |= deleteAlertDefinition(subj, child, force); - i.remove(); } + alertdef.clearChildren(); // Get rid of their triggers first TriggerDAO tdao = getTriggerDAO(); @@ -126,8 +126,7 @@ AlertDAO dao = getAlertDAO(); // See if there are any alerts - if (!force && - (dao.countAlerts(alertdef).intValue() > 0 || survivors)) { + if (survivors || (!force && dao.countAlerts(alertdef).intValue() > 0)) { alertdef.setDeleted(true); alertdef.setEnabled(false); @@ -477,6 +476,12 @@ for (Iterator i = adefs.iterator(); i.hasNext(); ) { AlertDefinition adef = (AlertDefinition) i.next(); + + // First check to see if need to remove from parent + if (adef.getParent() != null) { + adef.getParent().removeChild(adef); + } + deleteAlertDefinition(subj, adef, true); } } |