Skip to content

Commit

Permalink
[test] EventReader mt-hardening - fixes #527
Browse files Browse the repository at this point in the history
Was ArrayIndexOutOfBoundsException in fEventListeners.elementAt()

#527
  • Loading branch information
EcljpseB0T authored and jukzi committed Oct 9, 2024
1 parent 70049d8 commit 36c501b
Showing 1 changed file with 6 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,8 @@

package org.eclipse.debug.jdi.tests;

import java.util.Vector;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

import com.sun.jdi.VMDisconnectedException;
import com.sun.jdi.event.AccessWatchpointEvent;
Expand Down Expand Up @@ -43,7 +44,7 @@

public class EventReader extends AbstractReader {
private final EventQueue fEventQueue;
private final Vector<EventListener> fEventListeners = new Vector<>(); // A Vector of EventListener
private final List<EventListener> fEventListeners = new CopyOnWriteArrayList<>();

/**
* Constructor
Expand All @@ -56,7 +57,7 @@ public EventReader(String name, EventQueue queue) {
* Registers the given event listener.
*/
public synchronized void addEventListener(EventListener listener) {
fEventListeners.addElement(listener);
fEventListeners.add(listener);
}
/**
* Dispatches the given event to the given listener.
Expand Down Expand Up @@ -121,9 +122,7 @@ protected void readerLoop() {
EventIterator iterator = eventSet.eventIterator();
while (iterator.hasNext()) {
Event event = iterator.nextEvent();
for (int i = 0; i < fEventListeners.size(); i++) {
EventListener listener =
fEventListeners.elementAt(i);
for (EventListener listener : fEventListeners) {
shouldGo = shouldGo & dispath(event, listener);
}
if (event instanceof VMDeathEvent) {
Expand Down Expand Up @@ -156,6 +155,6 @@ protected void readerLoop() {
* De-registers the given event listener.
*/
public synchronized void removeEventListener(EventListener listener) {
fEventListeners.removeElement(listener);
fEventListeners.remove(listener);
}
}

0 comments on commit 36c501b

Please sign in to comment.