Index: sitestats-impl/src/java/org/sakaiproject/sitestats/impl/event/EventRegistryServiceImpl.java =================================================================== --- sitestats-impl/src/java/org/sakaiproject/sitestats/impl/event/EventRegistryServiceImpl.java (revision 308440) +++ sitestats-impl/src/java/org/sakaiproject/sitestats/impl/event/EventRegistryServiceImpl.java (working copy) @@ -18,17 +18,6 @@ */ package org.sakaiproject.sitestats.impl.event; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Observable; -import java.util.Observer; -import java.util.Set; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.component.api.ServerConfigurationService; @@ -48,7 +37,9 @@ import org.sakaiproject.tool.api.ToolManager; import org.sakaiproject.util.ResourceLoader; +import java.util.*; + public class EventRegistryServiceImpl implements EventRegistry, EventRegistryService, Observer { /** Static fields */ private static Log LOG = LogFactory.getLog(EventRegistryServiceImpl.class); @@ -397,22 +388,24 @@ /** Get the merged Event Registry. */ @SuppressWarnings("unchecked") private List getMergedEventRegistry() { - if(eventRegistryCache.containsKey(CACHENAME_EVENTREGISTRY)) { - return (List) eventRegistryCache.get(CACHENAME_EVENTREGISTRY); - }else{ + List eventRegistry = (List) eventRegistryCache.get(CACHENAME_EVENTREGISTRY); + if (eventRegistry == null) { // not found in the cache // First: use file Event Registry - List eventRegistry = fileEventRegistry.getEventRegistry(); - - // Second: add EntityBroker Event Registry, + eventRegistry = fileEventRegistry.getEventRegistry(); + // Second: add EntityBroker Event Registry, // replacing events for tools found on this Registry // (but keeping the anonymous flag for events in both Registries) eventRegistry = EventUtil.addToEventRegistry(entityBrokerEventRegistry.getEventRegistry(), true, eventRegistry); - + // Cache Event Registry eventRegistryCache.put(CACHENAME_EVENTREGISTRY, eventRegistry); LOG.debug("Cached EventRegistry."); - return eventRegistry; } + // STAT-380 ensure we do not return a null from this method + if (eventRegistry == null) { + eventRegistry = new ArrayList(0); + } + return eventRegistry; } /** Process event registry expired notifications */