United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6544857 Regression:javax/swing/JFileChooser/4673161/bug4673161.java test fails and throws IOException.
JDK-6544857 : Regression:javax/swing/JFileChooser/4673161/bug4673161.java test fails and throws IOException.

Details
Type:
Bug
Submit Date:
2007-04-11
Status:
Closed
Updated Date:
2011-01-26
Project Name:
JDK
Resolved Date:
2010-01-13
Component:
client-libs
OS:
windows_vista,windows_xp
Sub-Component:
javax.swing
CPU:
x86
Priority:
P3
Resolution:
Fixed
Affected Versions:
6,6u2,6u10
Fixed Versions:
6u18 (b04)

Related Reports
Backport:
Relates:
Relates:

Sub Tasks

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.
                                     
2009-10-15



Hardware and Software, Engineered to Work Together