src/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/LocalMonitoredVm.java

Print this page

        

*** 141,160 **** * Fire MonitoredVmStructureChanged events. * * @param inserted List of Monitor objects inserted. * @param removed List of Monitor objects removed. */ ! void fireMonitorStatusChangedEvents(List inserted, List removed) { MonitorStatusChangeEvent ev = null; ! ArrayList registered = null; synchronized (listeners) { registered = (ArrayList)listeners.clone(); } ! for (Iterator i = registered.iterator(); i.hasNext(); /* empty */) { ! VmListener l = (VmListener)i.next(); // lazily create the event object; if (ev == null) { ev = new MonitorStatusChangeEvent(this, inserted, removed); } l.monitorStatusChanged(ev); --- 141,161 ---- * Fire MonitoredVmStructureChanged events. * * @param inserted List of Monitor objects inserted. * @param removed List of Monitor objects removed. */ ! @SuppressWarnings("unchecked") // Cast of result of clone ! void fireMonitorStatusChangedEvents(List<Monitor> inserted, List<Monitor> removed) { MonitorStatusChangeEvent ev = null; ! ArrayList<VmListener> registered = null; synchronized (listeners) { registered = (ArrayList)listeners.clone(); } ! for (Iterator<VmListener> i = registered.iterator(); i.hasNext(); /* empty */) { ! VmListener l = i.next(); // lazily create the event object; if (ev == null) { ev = new MonitorStatusChangeEvent(this, inserted, removed); } l.monitorStatusChanged(ev);
*** 188,199 **** private class NotifierTask extends CountedTimerTask { public void run() { super.run(); try { MonitorStatus status = getMonitorStatus(); ! List inserted = status.getInserted(); ! List removed = status.getRemoved(); if (!inserted.isEmpty() || !removed.isEmpty()) { fireMonitorStatusChangedEvents(inserted, removed); } fireMonitorsUpdatedEvents(); --- 189,200 ---- private class NotifierTask extends CountedTimerTask { public void run() { super.run(); try { MonitorStatus status = getMonitorStatus(); ! List<Monitor> inserted = status.getInserted(); ! List<Monitor> removed = status.getRemoved(); if (!inserted.isEmpty() || !removed.isEmpty()) { fireMonitorStatusChangedEvents(inserted, removed); } fireMonitorsUpdatedEvents();