Skip to content

Commit

Permalink
8293984: Unnecessary Vector usage in PropertyEditorSupport
Browse files Browse the repository at this point in the history
Reviewed-by: serb
  • Loading branch information
Andrey Turbanov committed Oct 13, 2022
1 parent cd1357b commit 6ae7e4d
Showing 1 changed file with 9 additions and 14 deletions.
@@ -1,5 +1,5 @@
/*
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
* Copyright (c) 1996, 2022, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
Expand All @@ -25,7 +25,7 @@

package java.beans;

import java.beans.*;
import java.util.ArrayList;

/**
* This is a support class to help build property editors.
Expand Down Expand Up @@ -253,9 +253,9 @@ public boolean supportsCustomEditor() {
public synchronized void addPropertyChangeListener(
PropertyChangeListener listener) {
if (listeners == null) {
listeners = new java.util.Vector<>();
listeners = new ArrayList<>();
}
listeners.addElement(listener);
listeners.add(listener);
}

/**
Expand All @@ -273,37 +273,32 @@ public synchronized void removePropertyChangeListener(
if (listeners == null) {
return;
}
listeners.removeElement(listener);
listeners.remove(listener);
}

/**
* Report that we have been modified to any interested listeners.
*/
public void firePropertyChange() {
java.util.Vector<PropertyChangeListener> targets;
ArrayList<PropertyChangeListener> targets;
synchronized (this) {
if (listeners == null) {
return;
}
targets = unsafeClone(listeners);
targets = new ArrayList<>(listeners);
}
// Tell our listeners that "everything" has changed.
PropertyChangeEvent evt = new PropertyChangeEvent(source, null, null, null);

for (int i = 0; i < targets.size(); i++) {
PropertyChangeListener target = targets.elementAt(i);
PropertyChangeListener target = targets.get(i);
target.propertyChange(evt);
}
}

@SuppressWarnings("unchecked")
private <T> java.util.Vector<T> unsafeClone(java.util.Vector<T> v) {
return (java.util.Vector<T>)v.clone();
}

//----------------------------------------------------------------------

private Object value;
private Object source;
private java.util.Vector<PropertyChangeListener> listeners;
private ArrayList<PropertyChangeListener> listeners;
}

0 comments on commit 6ae7e4d

Please sign in to comment.