Details
-
Type:
Bug
-
Status: Resolved
-
Priority:
P3
-
Resolution: Fixed
-
Affects Version/s: 18, 19
-
Fix Version/s: 19
-
Component/s: client-libs
-
Subcomponent:
-
Introduced In Version:
-
Resolved In Build:b24
-
OS:os_x
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8287784 | 11.0.17-oracle | Dmitry Markov | P3 | Resolved | Fixed | master |
JDK-8288411 | 8u351 | Dmitry Markov | P3 | Resolved | Fixed | master |
Description
I am getting the following java.lang.IllegalArgumentException: Invalid location After selecting the text and selecting the item from the editable JComboBox.
java.lang.IllegalArgumentException: Invalid location
at java.desktop/javax.swing.text.JTextComponent$AccessibleJTextComponent.getTextRange(JTextComponent.java:3213)
at java.desktop/sun.lwawt.macosx.CAccessibleText$14.call(CAccessibleText.java:291)
at java.desktop/sun.lwawt.macosx.CAccessibleText$14.call(CAccessibleText.java:283)
at java.desktop/sun.lwawt.macosx.LWCToolkit$CallableWrapper.run(LWCToolkit.java:698)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Step to reproduce
------------------------
1) Enable VoiceOver on the mac
2) Run the attached test
3) Select an item from Editable JComboBox. Voice over should read the selected value.
4) Once again select an item from the Editable JComboBox this time select the value (text) and try selecting another item from the Editable JComboBox.
If you see the exception then the bug is reproduced.
I have attached the screen recording for the reference.
java.lang.IllegalArgumentException: Invalid location
at java.desktop/javax.swing.text.JTextComponent$AccessibleJTextComponent.getTextRange(JTextComponent.java:3213)
at java.desktop/sun.lwawt.macosx.CAccessibleText$14.call(CAccessibleText.java:291)
at java.desktop/sun.lwawt.macosx.CAccessibleText$14.call(CAccessibleText.java:283)
at java.desktop/sun.lwawt.macosx.LWCToolkit$CallableWrapper.run(LWCToolkit.java:698)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:308)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
Step to reproduce
------------------------
1) Enable VoiceOver on the mac
2) Run the attached test
3) Select an item from Editable JComboBox. Voice over should read the selected value.
4) Once again select an item from the Editable JComboBox this time select the value (text) and try selecting another item from the Editable JComboBox.
If you see the exception then the bug is reproduced.
I have attached the screen recording for the reference.
Attachments
Issue Links
- backported by
-
JDK-8287784 [macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox
-
- Resolved
-
-
JDK-8288411 [macos] VoiceOver : Getting java.lang.IllegalArgumentException: Invalid location on Editable JComboBox
-
- Resolved
-
- links to
-
Commit openjdk/jdk/ebfa27b9
-
Review openjdk/jdk11u-dev/1162
-
Review openjdk/jdk15u-dev/225
-
Review openjdk/jdk17u-dev/480
-
Review openjdk/jdk/8820
(2 links to)