Diagnostics for #167491: multiply added ChangeListener's.
1.1 --- a/openide.util/src/org/openide/util/ChangeSupport.java Wed Jul 22 19:03:18 2009 -0400
1.2 +++ b/openide.util/src/org/openide/util/ChangeSupport.java Thu Jul 23 11:28:31 2009 -0400
1.3 @@ -43,6 +43,8 @@
1.4
1.5 import java.util.List;
1.6 import java.util.concurrent.CopyOnWriteArrayList;
1.7 +import java.util.logging.Level;
1.8 +import java.util.logging.Logger;
1.9 import javax.swing.event.ChangeEvent;
1.10 import javax.swing.event.ChangeListener;
1.11
1.12 @@ -55,6 +57,8 @@
1.13 */
1.14 public final class ChangeSupport {
1.15
1.16 + private static final Logger LOG = Logger.getLogger(ChangeSupport.class.getName());
1.17 +
1.18 // not private because used in unit tests
1.19 final List<ChangeListener> listeners = new CopyOnWriteArrayList<ChangeListener>();
1.20 private final Object source;
1.21 @@ -80,6 +84,9 @@
1.22 if (listener == null) {
1.23 return;
1.24 }
1.25 + if (LOG.isLoggable(Level.FINE) && listeners.contains(listener)) {
1.26 + LOG.log(Level.FINE, "diagnostics for #167491", new IllegalStateException("Added " + listener + " multiply"));
1.27 + }
1.28 listeners.add(listener);
1.29 }
1.30