1 /* |
1 /* |
2 * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. Oracle designates this |
7 * published by the Free Software Foundation. Oracle designates this |
196 * Fire MonitoredVmStructureChanged events. |
196 * Fire MonitoredVmStructureChanged events. |
197 * |
197 * |
198 * @param inserted List of Monitor objects inserted. |
198 * @param inserted List of Monitor objects inserted. |
199 * @param removed List of Monitor objects removed. |
199 * @param removed List of Monitor objects removed. |
200 */ |
200 */ |
201 void fireMonitorStatusChangedEvents(List inserted, List removed) { |
201 @SuppressWarnings("unchecked") // Cast of result of clone |
202 ArrayList registered = null; |
202 void fireMonitorStatusChangedEvents(List<Monitor> inserted, List<Monitor> removed) { |
|
203 ArrayList<VmListener> registered = null; |
203 MonitorStatusChangeEvent ev = null; |
204 MonitorStatusChangeEvent ev = null; |
204 |
205 |
205 synchronized(listeners) { |
206 synchronized(listeners) { |
206 registered = (ArrayList)listeners.clone(); |
207 registered = (ArrayList)listeners.clone(); |
207 } |
208 } |
208 |
209 |
209 for (Iterator i = registered.iterator(); i.hasNext(); /* empty */) { |
210 for (Iterator<VmListener> i = registered.iterator(); i.hasNext(); /* empty */) { |
210 VmListener l = (VmListener)i.next(); |
211 VmListener l = i.next(); |
211 if (ev == null) { |
212 if (ev == null) { |
212 ev = new MonitorStatusChangeEvent(this, inserted, removed); |
213 ev = new MonitorStatusChangeEvent(this, inserted, removed); |
213 } |
214 } |
214 l.monitorStatusChanged(ev); |
215 l.monitorStatusChanged(ev); |
215 } |
216 } |
216 } |
217 } |
217 |
218 |
218 /** |
219 /** |
219 * Fire MonitoredVmStructureChanged events. |
220 * Fire MonitoredVmStructureChanged events. |
220 */ |
221 */ |
|
222 @SuppressWarnings("unchecked") // Cast of result of clone |
221 void fireMonitorsUpdatedEvents() { |
223 void fireMonitorsUpdatedEvents() { |
222 ArrayList registered = null; |
224 ArrayList<VmListener> registered = null; |
223 VmEvent ev = null; |
225 VmEvent ev = null; |
224 |
226 |
225 synchronized(listeners) { |
227 synchronized(listeners) { |
226 registered = (ArrayList)listeners.clone(); |
228 registered = (ArrayList)listeners.clone(); |
227 } |
229 } |
228 |
230 |
229 for (Iterator i = registered.iterator(); i.hasNext(); /* empty */) { |
231 for (Iterator<VmListener> i = registered.iterator(); i.hasNext(); /* empty */) { |
230 VmListener l = (VmListener)i.next(); |
232 VmListener l = i.next(); |
231 if (ev == null) { |
233 if (ev == null) { |
232 ev = new VmEvent(this); |
234 ev = new VmEvent(this); |
233 } |
235 } |
234 l.monitorsUpdated(ev); |
236 l.monitorsUpdated(ev); |
235 } |
237 } |
254 public void run() { |
256 public void run() { |
255 super.run(); |
257 super.run(); |
256 try { |
258 try { |
257 MonitorStatus status = getMonitorStatus(); |
259 MonitorStatus status = getMonitorStatus(); |
258 |
260 |
259 List inserted = status.getInserted(); |
261 List<Monitor> inserted = status.getInserted(); |
260 List removed = status.getRemoved(); |
262 List<Monitor> removed = status.getRemoved(); |
261 |
263 |
262 if (!inserted.isEmpty() || !removed.isEmpty()) { |
264 if (!inserted.isEmpty() || !removed.isEmpty()) { |
263 fireMonitorStatusChangedEvents(inserted, removed); |
265 fireMonitorStatusChangedEvents(inserted, removed); |
264 } |
266 } |
265 } catch (MonitorException e) { |
267 } catch (MonitorException e) { |