JDK-7037958 : Regression : Control panel browse button CCE since JDK7-b136
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 7
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2011-04-19
  • Updated: 2011-05-17
  • Resolved: 2011-05-17
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7 b141Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
SYNOPSIS
--------
Control panel "Browse" button issues.

OPERATING SYSTEM
----------------
All.

FULL JDK VERSION
----------------
Starts with JDK 7 b136.  Possible related to CR 5045147 work that went into b136.

PROBLEM DESCRIPTION
-------------------
Problem 1:
It is not possible to access the Browse button in the ControlPanel using the Keyboard.

Problem 2:
When you access Browse button using the mouse, an ClassCastException is thrown.

REPRODUCTION INSTRUCTIONS
-------------------------
1. Download the latest Java7 build & set the path.
2. Launch the Java control panel via bin/ControlPanel
3. Select the "Advanced" tab, then expand "Command to launch Default
   browser"
4. Try move the focus to the "Browse" Button with the Keyboard and
   activate it.

Expected result:
   Browse button should be accessible with keyboard and it should not
   throw an Exception when it is clicked.

Observed result:
   Cannot reach Browse button with keyboard. When clicking the button
   with the mouse a ClassCastException is thrown:

Exception in thread "AWT-EventQueue-0" java.lang.ClassCastException: javax.swing.KeyStroke cannot be cast to java.lang.Comparable
        at java.util.TreeMap.compare(TreeMap.java:1188)
        at java.util.TreeMap.put(TreeMap.java:531)
        at java.util.TreeSet.add(TreeSet.java:255)
        at java.util.Collections$SynchronizedCollection.add(Collections.java:1634)
        at com.sun.deploy.panel.TreeEditors$TextFieldEditor.<init>(Unknown Source)
        at com.sun.deploy.panel.TreeEditors.getEditor(Unknown Source)
        at com.sun.deploy.panel.TreeEditors.access$100(Unknown Source)
        at com.sun.deploy.panel.TreeEditors$DelegateEditor.pickEditor(Unknown Source)
        at com.sun.deploy.panel.TreeEditors$DelegateEditor.setCurrentEditor(Unknown Source)
        at com.sun.deploy.panel.TreeEditors$DelegateEditor.isCellEditable(Unknown Source)
        at javax.swing.plaf.basic.BasicTreeUI.startEditing(BasicTreeUI.java:2109)
        at javax.swing.plaf.basic.BasicTreeUI$Handler.handleSelection(BasicTreeUI.java:3586)
        at javax.swing.plaf.basic.BasicTreeUI$Handler.mousePressed(BasicTreeUI.java:3526)
        at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:279)
        at java.awt.Component.processMouseEvent(Component.java:6460)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
        at java.awt.Component.processEvent(Component.java:6228)
        at java.awt.Container.processEvent(Container.java:2213)
        at java.awt.Component.dispatchEventImpl(Component.java:4819)
        at java.awt.Container.dispatchEventImpl(Container.java:2271)
        at java.awt.Component.dispatchEvent(Component.java:4645)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4816)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4473)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4406)
        at java.awt.Container.dispatchEventImpl(Container.java:2257)
        at java.awt.Window.dispatchEventImpl(Window.java:2677)
        at java.awt.Component.dispatchEvent(Component.java:4645)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:707)
        at java.awt.EventQueue.access$000(EventQueue.java:101)
        at java.awt.EventQueue$3.run(EventQueue.java:666)
        at java.awt.EventQueue$3.run(EventQueue.java:664)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
        at java.awt.EventQueue$4.run(EventQueue.java:680)
        at java.awt.EventQueue$4.run(EventQueue.java:678)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:677)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:211)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:117)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

Comments
EVALUATION looks like the same problem as 7038484. mnemonic is set by calling getResource(key).charAt(0), instead of ResourceManager.getVKCode(key)
26-04-2011