modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine/internal/AgentConditionCache.java
| 20 +++++++---
1 file changed, 14 insertions(+), 6 deletions(-)
New commits:
commit eb59feb926212ded4d4b2042fb0062ca8164ca7c
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Wed Jan 5 12:54:10 2011 -0500
checkCondition methods should never throw exceptions. the cache will clean itself up
later eventually
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine/internal/AgentConditionCache.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine/internal/AgentConditionCache.java
index 758d1cc..0100d3a 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine/internal/AgentConditionCache.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/alert/engine/internal/AgentConditionCache.java
@@ -349,15 +349,23 @@ class AgentConditionCache extends AbstractConditionCache {
if ((callTime == null) || (callTime.length == 0)) {
return new AlertConditionCacheStats();
}
+
AlertConditionCacheStats stats = new AlertConditionCacheStats();
- HashMap<Integer, HashMap<String, ArrayList<CallTimeDataValue>>>
order = produceOrderedCallTimeDataStructure(callTime);
- for (Integer scheduleId : order.keySet()) {
- List<? extends CallTimeDataCacheElement> conditionCacheElements =
lookupCallTimeDataCacheElements(scheduleId);
- for (String callDest : order.get(scheduleId).keySet())
- for (CallTimeDataValue provided : order.get(scheduleId).get(callDest)) {
- processCacheElements(conditionCacheElements, provided,
provided.getBeginTime(), stats, callDest);
+ try {
+ HashMap<Integer, HashMap<String,
ArrayList<CallTimeDataValue>>> order =
produceOrderedCallTimeDataStructure(callTime);
+ for (Integer scheduleId : order.keySet()) {
+ List<? extends CallTimeDataCacheElement> conditionCacheElements =
lookupCallTimeDataCacheElements(scheduleId);
+ for (String callDest : order.get(scheduleId).keySet()) {
+ for (CallTimeDataValue provided :
order.get(scheduleId).get(callDest)) {
+ processCacheElements(conditionCacheElements, provided,
provided.getBeginTime(), stats, callDest);
+ }
}
+ }
+ } catch (Throwable t) {
+ // don't let any exceptions bubble up to the calling SLSB layer
+ log.error("Error during calltime cache processing for agent[id=" +
agentId + "]", t);
}
+
return stats;
}
Show replies by date