JDK-8156175 : Tabbing sequence is broken for Radio buttons
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 7u80
  • Priority: P3
  • Status: Closed
  • Resolution: Won't Fix
  • OS: windows_7
  • CPU: x86_64
  • Submitted: 2016-04-19
  • Updated: 2017-05-22
  • Resolved: 2017-05-22
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "1.7.0_85"


ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]

EXTRA RELEVANT SYSTEM CONFIGURATION :
User should have Java version 1.7.0_85 or lesser.

A DESCRIPTION OF THE PROBLEM :
Not able to tab out between two radio buttons, if the sequence is between 2 radio buttons.

Java version  "1.7.0_25" does not have this problem. works well with radio button navigation.
Our Application is standalone java application and its client code is having JRE installed "1.7.0_85".
Unfortunately as other apps are also inter-related we are not able to make changes and migrate to any other java version as backdrop versions or upgrade to 1.8.

Thus requesting to suggest some workaround to this issue.




REGRESSION.  Last worked in version 7u79

ADDITIONAL REGRESSION INFORMATION: 
Problem observed in :-
java version "1.7.0_85"
Java(TM) SE Runtime Environment (build 1.7.0_85-b15)
Java HotSpot(TM) Client VM (build 24.85-b06, mixed mode)

Works fine with backdrop versions:-
java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b17)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
User should have Java version 1.7.0_85 configured on client/UI code.
Have 2 radio buttons, and try to navigate with tab key from one to other in sequence with JRE1.7.0_85 installed on eclipse.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
User should be able to navigate between two radio buttons.
ACTUAL -
User not be able to navigate between two radio buttons. Causing 
Uncaught exception in dispatchEvent():
java.lang.IllegalArgumentException: aContainer is not a focus cycle root of aComponent

ERROR MESSAGES/STACK TRACES THAT OCCUR :
 [2015-12-17 15:28:47,155] [ERROR] [AWT-EventQueue-2] css.rcp.OnesourceEventQueue - Uncaught exception in dispatchEvent():
java.lang.IllegalArgumentException: aContainer is not a focus cycle root of aComponent
                at javax.swing.SortingFocusTraversalPolicy.getComponentAfter(SortingFocusTraversalPolicy.java:305)
                at javax.swing.LayoutFocusTraversalPolicy.getComponentAfter(LayoutFocusTraversalPolicy.java:106)
                at javax.swing.plaf.basic.BasicRadioButtonUI$ButtonGroupInfo.getFocusTransferBaseComponent(BasicRadioButtonUI.java:444)
                at javax.swing.plaf.basic.BasicRadioButtonUI$ButtonGroupInfo.jumpToNextComponent(BasicRadioButtonUI.java:567)
                at javax.swing.plaf.basic.BasicRadioButtonUI$KeyHandler.keyPressed(BasicRadioButtonUI.java:597)
                at java.awt.Component.processKeyEvent(Component.java:6474)
                at javax.swing.JComponent.processKeyEvent(JComponent.java:2829)
                at java.awt.Component.processEvent(Component.java:6293)
                at java.awt.Container.processEvent(Container.java:2229)
                at java.awt.Component.dispatchEventImpl(Component.java:4872)
                at java.awt.Container.dispatchEventImpl(Container.java:2287)
                at java.awt.Component.dispatchEvent(Component.java:4698)
                at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1887)
                at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:762)
                at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:1027)
                at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:899)
                at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:727)
                at java.awt.Component.dispatchEventImpl(Component.java:4742)
                at java.awt.Container.dispatchEventImpl(Container.java:2287)
                at java.awt.Window.dispatchEventImpl(Window.java:2719)
                at java.awt.Component.dispatchEvent(Component.java:4698)
                at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:747)
                at java.awt.EventQueue.access$300(EventQueue.java:103)
                at java.awt.EventQueue$3.run(EventQueue.java:706)
                at java.awt.EventQueue$3.run(EventQueue.java:704)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:87)
                at java.awt.EventQueue$4.run(EventQueue.java:720)
                at java.awt.EventQueue$4.run(EventQueue.java:718)
                at java.security.AccessController.doPrivileged(Native Method)
                at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:77)
                at java.awt.EventQueue.dispatchEvent(EventQueue.java:717)
                at com.fedex.css.rcp.OnesourceEventQueue.dispatchEvent(OnesourceEventQueue.java:36)
                at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
                at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
                at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
                at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
                at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)


REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
User needs to manually navigate through radio buttons.


Comments
Please file a new issue if this can be seen with >= JDK 8.
22-05-2017

In the end this might be able to be closed as "Not an issue". The submitter's expectations are currently incorrect, due to the corrected radio button group behavior fixed by JDK-8033699. When pressing tab in a radio button group focus should not move to the next radio button but should move to the next focusable element. I suspect this is not a dup of JDK-8154043 but will let Vivi confirm that. However, the exception should not have happened and should be investigated.
31-05-2016

is it a dup of JDK-8154043 ?
06-05-2016