RFR: 8354646: java.awt.TextField allows to identify the spaces in a password when double clicked at the starting and end of the text [v14]
Alexey Ivanov
aivanov at openjdk.org
Mon Jun 9 20:40:39 UTC 2025
On Mon, 9 Jun 2025 06:22:57 GMT, Jeremy Wood <duke at openjdk.org> wrote:
>> Make sure AquaTextPasswordFieldUI can't use selectWordAction.
>>
>> The core problem here was we could call selectWordAction in the Aqua LAF on a JPasswordField. This problem was already solved in the BasicPasswordFieldUI . The same solution was copied and pasted into the SynthPasswordFieldUI . But the AquaTextPasswordFieldUI does NOT extend either class with the solution.
>>
>> So the problem is partially about multiple inheritance.
>>
>> My first response at solving the problem is just to move the existing solution to the parent BasicTextUI class and use an `instanceof` to make sure it is only applied to JPasswordFields. This should benefit all the PasswordFieldUI's (that I know about).
>>
>> There may be many different philosophies/recommendations on how to resolve this; I'm open to suggestions.
>
> Jeremy Wood has updated the pull request incrementally with one additional commit since the last revision:
>
> 8354646: moving test file to new package
>
> This is in response to:
> https://github.com/openjdk/jdk/pull/25443#discussion_r2131872951
Changes requested by aivanov (Reviewer).
src/java.desktop/share/classes/javax/swing/plaf/basic/BasicTextUI.java line 658:
> 656: if (map.get(DefaultEditorKit.selectWordAction) != null) {
> 657: Action a = map.get(DefaultEditorKit.selectLineAction);
> 658: map.remove(DefaultEditorKit.selectWordAction);
Suggestion:
if (map.get(DefaultEditorKit.selectWordAction) != null) {
map.remove(DefaultEditorKit.selectWordAction);
Action a = map.get(DefaultEditorKit.selectLineAction);
This would be clearer: remove first, then if there's a `selectLineAction` replace with it.
-------------
PR Review: https://git.openjdk.org/jdk/pull/25443#pullrequestreview-2911298891
PR Review Comment: https://git.openjdk.org/jdk/pull/25443#discussion_r2136469152
More information about the client-libs-dev
mailing list