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);
}
}