Bug 486156: Adapt to ListenerList changes
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
index 2be1a27..0b9e4e2 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/hcr/JavaHotCodeReplaceManager.java
@@ -741,13 +741,13 @@
 	 *            Java debug target
 	 * @return hot code replace listeners
 	 */
-	private Object[] getHotCodeReplaceListeners(IJavaDebugTarget target) {
-		Object[] listeners = null;
+	private ListenerList<IJavaHotCodeReplaceListener> getHotCodeReplaceListeners(IJavaDebugTarget target) {
+		ListenerList<IJavaHotCodeReplaceListener> listeners = null;
 		if (target instanceof JDIDebugTarget) {
 			listeners = ((JDIDebugTarget) target).getHotCodeReplaceListeners();
 		}
-		if (listeners == null || listeners.length == 0) {
-			listeners = fHotCodeReplaceListeners.getListeners();
+		if (listeners == null || listeners.size() == 0) {
+			listeners = fHotCodeReplaceListeners;
 		}
 		return listeners;
 	}
@@ -756,10 +756,9 @@
 	 * Notifies listeners that a hot code replace attempt succeeded
 	 */
 	private void fireHCRSucceeded(IJavaDebugTarget target) {
-		Object[] listeners = getHotCodeReplaceListeners(target);
-		for (Object listener : listeners) {
-			((IJavaHotCodeReplaceListener) listener)
-					.hotCodeReplaceSucceeded(target);
+		ListenerList<IJavaHotCodeReplaceListener> listeners = getHotCodeReplaceListeners(target);
+		for (IJavaHotCodeReplaceListener listener : listeners) {
+			listener.hotCodeReplaceSucceeded(target);
 		}
 	}
 
@@ -768,10 +767,9 @@
 	 * exception
 	 */
 	private void fireHCRFailed(JDIDebugTarget target, DebugException exception) {
-		Object[] listeners = getHotCodeReplaceListeners(target);
-		for (Object listener : listeners) {
-			((IJavaHotCodeReplaceListener) listener).hotCodeReplaceFailed(
-					target, exception);
+		ListenerList<IJavaHotCodeReplaceListener> listeners = getHotCodeReplaceListeners(target);
+		for (IJavaHotCodeReplaceListener listener : listeners) {
+			listener.hotCodeReplaceFailed(target, exception);
 		}
 	}
 
@@ -779,9 +777,9 @@
 	 * Notifies listeners that obsolete methods remain on the stack
 	 */
 	private void fireObsoleteMethods(JDIDebugTarget target) {
-		Object[] listeners = getHotCodeReplaceListeners(target);
-		for (Object listener : listeners) {
-			((IJavaHotCodeReplaceListener) listener).obsoleteMethods(target);
+		ListenerList<IJavaHotCodeReplaceListener> listeners = getHotCodeReplaceListeners(target);
+		for (IJavaHotCodeReplaceListener listener : listeners) {
+			listener.obsoleteMethods(target);
 		}
 	}
 
diff --git a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
index dfacbeb..08608a1 100644
--- a/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
+++ b/org.eclipse.jdt.debug/model/org/eclipse/jdt/internal/debug/core/model/JDIDebugTarget.java
@@ -2989,12 +2989,12 @@
 	}
 
 	/**
-	 * Returns an array of current hot code replace listeners.
+	 * Returns the current hot code replace listeners.
 	 * 
 	 * @return registered hot code replace listeners
-	 * @since 3.6
+	 * @since 3.10
 	 */
-	public Object[] getHotCodeReplaceListeners() {
-		return fHCRListeners.getListeners();
+	public ListenerList<IJavaHotCodeReplaceListener> getHotCodeReplaceListeners() {
+		return fHCRListeners;
 	}
 }