On Mon, 2006-02-06 at 12:56 +0000, Roman Kennke wrote: > 2006-02-06 Roman Kennke <[EMAIL PROTECTED]> > > * javax/swing/event/SwingPropertyChangeSupport.java > (listeners): Removed field. > (propertyListeners): Removed field. > (source): Removed field. > (SwingPropertyChangeSupport()): Removed initialization of removed > fields. > (addPropertyChangeListener): Removed methods. > (removePropertyChangeListener): Removed methods. > (getPropertyChangeListeners): Removed methods. > (firePropertyChange): Removed methods. > (hasListeners): Removed methods.
This showed some regressions in mauve:
FAIL:
gnu.testlet.javax.swing.event.SwingPropertyChangeSupport.addPropertyChangeListener:
(PropertyChangeListener) (number 3)
FAIL:
gnu.testlet.javax.swing.event.SwingPropertyChangeSupport.addPropertyChangeListener:
(String, PropertyChangeListener) (number 3)
Fixed as follows:
2006-02-12 Mark Wielaard <[EMAIL PROTECTED]>
* java/beans/PropertyChangeSupport.java (addPropertyChangeListener):
Silently ignores null listener.
(addPropertyChangeListener(String, PropertyChangeListener): Likewise.
(getPropertyChangeListeners): Returns empty PropertyChangeListener
array for null propertyName.
Committed,
Mark
Index: java/beans/PropertyChangeSupport.java
===================================================================
RCS file: /sources/classpath/classpath/java/beans/PropertyChangeSupport.java,v
retrieving revision 1.14
diff -u -r1.14 PropertyChangeSupport.java
--- java/beans/PropertyChangeSupport.java 30 Nov 2005 15:25:12 -0000 1.14
+++ java/beans/PropertyChangeSupport.java 12 Feb 2006 13:53:21 -0000
@@ -1,5 +1,6 @@
/* PropertyChangeSupport.java -- support to manage property change listeners
- Copyright (C) 1998, 1999, 2000, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2000, 2002, 2005, 2006
+ Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -120,14 +121,17 @@
* property change events will be sent to this listener. The listener add
* is not unique: that is, <em>n</em> adds with the same listener will
* result in <em>n</em> events being sent to that listener for every
- * property change. Adding a null listener may cause a NullPointerException
- * down the road. This method will unwrap a PropertyChangeListenerProxy,
+ * property change. Adding a null listener is silently ignored.
+ * This method will unwrap a PropertyChangeListenerProxy,
* registering the underlying delegate to the named property list.
*
* @param l the listener to add
*/
public synchronized void addPropertyChangeListener(PropertyChangeListener l)
{
+ if (l == null)
+ return;
+
if (l instanceof PropertyChangeListenerProxy)
{
PropertyChangeListenerProxy p = (PropertyChangeListenerProxy) l;
@@ -216,8 +220,8 @@
* cumulative, too; if you are registered to listen to receive events on
* all property changes, and then you register on a particular property,
* you will receive change events for that property twice. Adding a null
- * listener may cause a NullPointerException down the road. This method
- * will unwrap a PropertyChangeListenerProxy, registering the underlying
+ * listener is silently ignored. This method will unwrap a
+ * PropertyChangeListenerProxy, registering the underlying
* delegate to the named property list if the names match, and discarding
* it otherwise.
*
@@ -228,6 +232,9 @@
public synchronized void addPropertyChangeListener(String propertyName,
PropertyChangeListener l)
{
+ if (l == null)
+ return;
+
while (l instanceof PropertyChangeListenerProxy)
{
PropertyChangeListenerProxy p = (PropertyChangeListenerProxy) l;
@@ -290,17 +297,16 @@
/**
* Returns an array of all property change listeners registered under the
- * given property name. If there are no registered listeners, this returns
- * an empty array.
+ * given property name. If there are no registered listeners, or
+ * propertyName is null, this returns an empty array.
*
* @return the array of registered listeners
- * @throws NullPointerException if propertyName is null
* @since 1.4
*/
public synchronized PropertyChangeListener[]
getPropertyChangeListeners(String propertyName)
{
- if (children == null)
+ if (children == null || propertyName == null)
return new PropertyChangeListener[0];
PropertyChangeSupport s
= (PropertyChangeSupport) children.get(propertyName);
@@ -455,7 +461,6 @@
*
* @param propertyName the property that may be listened on
* @return whether the property is being listened on
- * @throws NullPointerException if propertyName is null
*/
public synchronized boolean hasListeners(String propertyName)
{
signature.asc
Description: This is a digitally signed message part
