On Thu, 9 Nov 2023 04:36:08 GMT, Abhishek Kumar <abhis...@openjdk.org> wrote:

> Observed a test failure (regression) while running the CI jobs with the fix.

The failed test is `javax/swing/JComboBox/6567433/UpdateUIRecursionTest.java`. 
It fails with `NullPointerException` because `PropertyChangeListener` in 
`AquaComboBoxUI` updates the accessible name of the arrow button. It does os 
before the accessible name is actually needed.

We should consider getting the accessible name lazily.

> Modified the test to fix the issue. Now, CI jobs are ok. Please review.

It looks fine to me.

But this change breaks backward compatibility: the failed test demonstrates it. 
If another application does something similar, it will throw NPE now.

You and I proved that adding `null`-checks in the listener or 
`updateAccessibleName` doesn't help. The only way to avoid it is to catch NPE.

This brings us to:

> Ideally, I'd like to make Aqua L&F classes work like Metal or Nimbus do. …

This way gets the accessible name *lazily*: it's requested only *when needed*. 
Therefore you should submit another bug to address the limitation of the 
current approach.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/14497#issuecomment-1804275339

Reply via email to