From: <pn...@hy...> - 2010-03-01 18:00:08
|
Author: pnguyen Date: 2010-03-01 09:59:47 -0800 (Mon, 01 Mar 2010) New Revision: 14335 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=14335 Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java Log: [HHQ-3594] Add additional async delete check Modified: trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java =================================================================== --- trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java 2010-03-01 09:20:57 UTC (rev 14334) +++ trunk/src/org/hyperic/hq/events/server/session/AlertDefinitionManagerEJBImpl.java 2010-03-01 17:59:47 UTC (rev 14335) @@ -1255,19 +1255,23 @@ AvailabilityDownAlertDefinitionCache.getInstance(); synchronized (cache) { - cache.remove(def.getAppdefEntityId()); + if (isOkToRemove(def)) { + cache.remove(def.getAppdefEntityId()); + } - AlertDefinition childDef = null; for (Iterator it=def.getChildren().iterator(); it.hasNext(); ) { - childDef = (AlertDefinition) it.next(); - Resource r = childDef.getResource(); - if (r == null || r.isInAsyncDeleteState()) { - continue; + AlertDefinition childDef = (AlertDefinition) it.next(); + if (isOkToRemove(childDef)) { + cache.remove(childDef.getAppdefEntityId()); } - cache.remove(childDef.getAppdefEntityId()); } } } + + private boolean isOkToRemove(AlertDefinition def) { + Resource r = def.getResource(); + return (r != null && !r.isInAsyncDeleteState()); + } }); } |