JDK-6544857 : Regression:javax/swing/JFileChooser/4673161/bug4673161.java test fails and throws IOException.
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 6,6u2,6u10
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: windows_xp,windows_vista
  • CPU: x86
  • Submitted: 2007-04-11
  • Updated: 2011-01-26
  • Resolved: 2010-01-13
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 6 JDK 7
6u18 b04Fixed 7Resolved
Related Reports
Relates :  
Relates :  
Description
Bug Info:
=========
Test fails and throws IOException.It's failing from 6u2 b01 due to the fix 6491795 on windows.

It fails only on winxp professional and it's passing on winvista ultimate and winxp home.

JDK:
====
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b01)
Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)

TestLocation:
=============
/net/sqindia.india/export/disk11/swing/updatereleasebinaries/6u2_b02_PIT/test/javax/swing/JFileChooser/4673161/bug4673161.java

Please find the attached log file for details.

Error log:
=========
----------System.err:(31/2310)----------
java.lang.RuntimeException: java.io.IOException: Could not get shell folder ID list
	at sun.awt.shell.Win32ShellFolder2$ComTask.execute(Win32ShellFolder2.java:1223)
	at sun.awt.shell.Win32ShellFolder2.getFileSystemPath(Win32ShellFolder2.java:557)
	at sun.awt.shell.Win32ShellFolderManager2.getRecent(Win32ShellFolderManager2.java:109)
	at sun.awt.shell.Win32ShellFolderManager2.get(Win32ShellFolderManager2.java:248)
	at sun.awt.shell.ShellFolder.get(ShellFolder.java:218)
	at sun.swing.WindowsPlacesBar.<init>(WindowsPlacesBar.java:64)
	at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.updateUseShellFolder(WindowsFileChooserUI.java:508)
	at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installComponents(WindowsFileChooserUI.java:190)
	at javax.swing.plaf.basic.BasicFileChooserUI.installUI(BasicFileChooserUI.java:136)
	at com.sun.java.swing.plaf.windows.WindowsFileChooserUI.installUI(WindowsFileChooserUI.java:127)
	at javax.swing.JComponent.setUI(JComponent.java:673)
	at javax.swing.JFileChooser.updateUI(JFileChooser.java:1762)
	at javax.swing.JFileChooser.setup(JFileChooser.java:360)
	at javax.swing.JFileChooser.<init>(JFileChooser.java:333)
	at javax.swing.JFileChooser.<init>(JFileChooser.java:286)
	at bug4673161.init(bug4673161.java:28)
	at com.sun.javatest.regtest.AppletWrapper$AppletThread.run(AppletWrapper.java:144)
	at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Could not get shell folder ID list
	at sun.awt.shell.Win32ShellFolder2.getFileSystemPath0(Native Method)
	at sun.awt.shell.Win32ShellFolder2.access$1000(Win32ShellFolder2.java:55)
	at sun.awt.shell.Win32ShellFolder2$8.call(Win32ShellFolder2.java:559)
	at sun.awt.shell.Win32ShellFolder2$8.call(Win32ShellFolder2.java:557)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at sun.awt.shell.Win32ShellFolder2$ComTaskExecutor$2.run(Win32ShellFolder2.java:1180)
	... 1 more
STATUS:Failed.Applet thread threw exception: java.lang.RuntimeException: java.io.IOException: Could not get shell folder ID list
result: Failed. Execution failed: Applet thread threw exception: java.lang.RuntimeException: java.io.IOException: Could not get shell folder ID list


test result: Failed. Execution failed: Applet thread threw exception: java.lang.RuntimeException: java.io.IOException: Could not get shell folder ID list

Comments
EVALUATION The ComInvoker wraps any catched exceptions into RuntimeException, therefore the sun.awt.shell.Win32ShellFolder2#getFileSystemPath method doesn't throw IOException at all. As a result invokers of the getFileSystemPath method can't process the problem correctly and fail. To avoid such situations the Invoker signature and implementation should be fixed.
15-10-2009