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

Print this page

        

*** 158,178 **** * @param started a set of Integer objects containing the vmid of * new Vms started since last interval. * @param terminated a set of Integer objects containing the vmid of * terminated Vms since last interval. */ ! private void fireVmStatusChangedEvents(Set active, Set started, ! Set terminated) { ! ArrayList registered = null; VmStatusChangeEvent ev = null; synchronized(listeners) { registered = (ArrayList)listeners.clone(); } ! for (Iterator i = registered.iterator(); i.hasNext(); /* empty */) { ! HostListener l = (HostListener)i.next(); if (ev == null) { ev = new VmStatusChangeEvent(this, active, started, terminated); } l.vmStatusChanged(ev); } --- 158,179 ---- * @param started a set of Integer objects containing the vmid of * new Vms started since last interval. * @param terminated a set of Integer objects containing the vmid of * terminated Vms since last interval. */ ! @SuppressWarnings("unchecked") // Cast of result of clone ! private void fireVmStatusChangedEvents(Set<Integer> active, Set<Integer> started, ! Set<Integer> terminated) { ! ArrayList<HostListener> registered = null; VmStatusChangeEvent ev = null; synchronized(listeners) { registered = (ArrayList)listeners.clone(); } ! for (Iterator<HostListener> i = registered.iterator(); i.hasNext(); /* empty */) { ! HostListener l = i.next(); if (ev == null) { ev = new VmStatusChangeEvent(this, active, started, terminated); } l.vmStatusChanged(ev); }
*** 184,215 **** private class NotifierTask extends CountedTimerTask { public void run() { super.run(); // save the last set of active JVMs ! Set lastActiveVms = activeVms; // get the current set of active JVMs activeVms = (HashSet<Integer>)vmManager.activeVms(); if (activeVms.isEmpty()) { return; } ! Set<Integer> startedVms = new HashSet<Integer>(); ! Set<Object> terminatedVms = new HashSet<Object>(); ! for (Iterator i = activeVms.iterator(); i.hasNext(); /* empty */) { ! Integer vmid = (Integer)i.next(); if (!lastActiveVms.contains(vmid)) { // a new file has been detected, add to set startedVms.add(vmid); } } ! for (Iterator i = lastActiveVms.iterator(); i.hasNext(); /* empty */) { ! Object o = i.next(); if (!activeVms.contains(o)) { // JVM has terminated, remove it from the active list terminatedVms.add(o); } } --- 185,216 ---- private class NotifierTask extends CountedTimerTask { public void run() { super.run(); // save the last set of active JVMs ! Set<Integer> lastActiveVms = activeVms; // get the current set of active JVMs activeVms = (HashSet<Integer>)vmManager.activeVms(); if (activeVms.isEmpty()) { return; } ! Set<Integer> startedVms = new HashSet<>(); ! Set<Integer> terminatedVms = new HashSet<>(); ! for (Iterator<Integer> i = activeVms.iterator(); i.hasNext(); /* empty */) { ! Integer vmid = i.next(); if (!lastActiveVms.contains(vmid)) { // a new file has been detected, add to set startedVms.add(vmid); } } ! for (Iterator<Integer> i = lastActiveVms.iterator(); i.hasNext(); /* empty */) { ! Integer o = i.next(); if (!activeVms.contains(o)) { // JVM has terminated, remove it from the active list terminatedVms.add(o); } }