SUGGESTED FIX
--- old/src/share/classes/java/awt/Component.java 2008-04-01 12:32:22.000000000 +0400
+++ new/src/share/classes/java/awt/Component.java 2008-04-01 12:32:21.000000000 +0400
@@ -634,7 +634,9 @@
*/
private PropertyChangeSupport changeSupport;
- private transient final Object changeSupportLock = new Object();
+ // Note: this field is considered final, though readObject() prohibits
+ // initializing final fields.
+ private transient Object changeSupportLock = new Object();
private Object getChangeSupportLock() {
return changeSupportLock;
}
@@ -8437,6 +8439,8 @@
popup.parent = this;
}
}
+
+ changeSupportLock = new Object();
}
/**
|
EVALUATION
I have not tried to run the test, but from the code it looks like a regression from fix 6608764
(PropertyChangeListeners machinery should have a better locking scheme). The fix has introduced
new transient field changeSupportLock, but this field is not initiallized in readObject().
|