RFR: 8293795: [Accessibility] [Win] [Narrator] Exceptions when deleting text with continous key press in TextArea and TextField

Ambarish Rapte arapte at openjdk.org
Fri Sep 30 15:20:02 UTC 2022


This is a follow up bug-fix to [JDK-8284281](https://bugs.openjdk.org/browse/JDK-8284281)

Issue:
When Narrator is running,
Following scenarios with TextField or TextArea cause IllegalArgumentException  or NPE

1. Move cursor to beginning of line, Press and hold DELETE key
2. Move cursor to beginning of line, Press and hold CTRL + DELETE key
3. Move cursor to end of line, Press and hold BACKSPACE key
4. Move cursor to end of line, Press and hold CTRL + BACKSPACE key

Fix:
Two variable `start` and `end` in  `WinTextRangeProvider` should be validated against text length
1. Added a method `validateRange()`, and is called several from methods which access text based on `start` and `end` variables
2. Partially reverted fix of [JDK-8284281](https://bugs.openjdk.org/browse/JDK-8284281) : 
    - removed https://github.com/openjdk/jfx/blob/35675c8d27d54a26059b182614e18152794dbcec/modules/javafx.graphics/src/main/java/com/sun/glass/ui/win/WinTextRangeProvider.java#L180
    - and used `validateRange()` instead to be symmetrical.

Verification:
To observe the issue.

1. Run any program with TextField and/or TextArea
2. Launch Windows Narrator
3. Run the exception causing scenarios several times:

- Move cursor to beginning of line, Press and hold DELETE key
- Move cursor to beginning of line, Press and hold CTRL + DELETE key
- Move cursor to end of line, Press and hold BACKSPACE key
- Move cursor to end of line, Press and hold CTRL + BACKSPACE key

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

Commit messages:
 - validateRange before accessing text string

Changes: https://git.openjdk.org/jfx/pull/907/files
 Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=907&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8293795
  Stats: 24 lines in 1 file changed: 16 ins; 4 del; 4 mod
  Patch: https://git.openjdk.org/jfx/pull/907.diff
  Fetch: git fetch https://git.openjdk.org/jfx pull/907/head:pull/907

PR: https://git.openjdk.org/jfx/pull/907


More information about the openjfx-dev mailing list