On 11-Mar-20 11:24 AM, Sergey Bylokhov wrote:
On 3/10/20 10:23 pm, Prasanta Sadhukhan wrote:

Yes, it was part of MetalFileChooseUI and WindowsFileChooserUI too but it was removed explicitly in uninstallUI.

The MetalFileChooseUI and WindowsFileChooserUI use non-local(we could say public) listeners for example BasicFileChooserUI.getCancelSelectionAction():

These listeners could be accessed by the application since is a BasicFileChooserUI is in the "javax.swing.plaf.basic" package. So we should not use these listeners after the L&F switch. The Aqua uses only its own listeners, so they die at the same time as the FileChooseUI itself.


OK. What about fileNameTextField. Shouldn't we need to uninstallUI that too?

I see uninstallUI does not do removeActionListener, or else proabably we could just add fileNameTextField.uninstallUI() along with the fix?

Regards
Prasanta
On 08-Mar-20 3:50 AM, Sergey Bylokhov wrote:
Hello.
Please review the fix for jdk/client.

Bug: https://bugs.openjdk.java.net/browse/JDK-8240633
Fix: http://cr.openjdk.java.net/~serb/8240633/webrev.00

Our tests in mach5 for JFileChooser sometime fails with different
suspicious exceptions. The root cause is that the Aqua UI delegates
add various listeners to the JFileChooser, and never delete them.
So these Aqua related listeners may fail if current L&F was changed.

In the fix we will "uninstall" all child components for the AquaFileChooserUI.

Also in the AquaFileChooserUI we had added model as a PropertyChangeListener twice,
and never removed the filterComboBoxModel.





Reply via email to