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.