You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by "Vasily Zakharov (JIRA)" <ji...@apache.org> on 2007/01/18 00:10:29 UTC

[jira] Commented: (HARMONY-2567) [classlib][swing] javax.swing.filechooser.FileSystemView.getSystemIcon(File) does not throw unspecified FileNotFoundException

    [ https://issues.apache.org/jira/browse/HARMONY-2567?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12465596 ] 

Vasily Zakharov commented on HARMONY-2567:
------------------------------------------

In fact, RI doesn't throw FNFE, but catches FNFE somewhere inside, prints it, and throws NPE. Here's a more clear demonstration:

import javax.swing.*;
import javax.swing.filechooser.*;
import java.io.File;

public class Test {
    public static void main(String args[]) {
        try {
            Icon icon = FileSystemView.getFileSystemView().getSystemIcon(new File("a"));
            System.out.println(icon);
        } catch (Throwable e) {
            System.err.print("CAUGHT: ");
            e.printStackTrace();
        }
    }
}

Output on RI:

FileSystemView.getShellFolder: f=a
java.io.FileNotFoundException
        at sun.awt.shell.ShellFolder.getShellFolder(ShellFolder.java:210)
        at javax.swing.filechooser.FileSystemView.getShellFolder(FileSystemView.java:495)
        at javax.swing.filechooser.FileSystemView.getSystemIcon(FileSystemView.java:198)
        at Test.main(Test.java:8)
CAUGHT: java.lang.NullPointerException
        at javax.swing.filechooser.FileSystemView.getSystemIcon(FileSystemView.java:199)
        at Test.main(Test.java:8)

As you may clearly see, everything above CAUGHT is simple prints from RI internal methods.

Output on Harmony:

null

In this situation, RI behavior looks strange and non-logical, and Harmony is more consistent.
Note that if null is passed to getSystemIcon() instead of new File("a"), both implementations return null, so this probably is an admissible value.

So my opinion is we need not replicate RI behavior and should close this issue as a non-bug difference.


> [classlib][swing] javax.swing.filechooser.FileSystemView.getSystemIcon(File) does not throw unspecified FileNotFoundException
> -----------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HARMONY-2567
>                 URL: https://issues.apache.org/jira/browse/HARMONY-2567
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>            Reporter: Anton Luht
>            Priority: Minor
>
> Compatibility issue.
> If a directory with icons cannot be found, RI throws FileNotFound exception while Harmony does not. This exception is not mentioned in the spec.
> Code for reproducing:
> import javax.swing.*;
> import javax.swing.filechooser.*;
> import java.io.File;
> public class Test 
> {          
>     public static void main(String args[]) { 
>         FileSystemView.getFileSystemView().getSystemIcon(new File("a")); 
>         System.out.println("PASSED");
>     } 
> }
> Output in RI:
> java version "1.5.0_06"
> Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-b05)
> Java HotSpot(TM) Client VM (build 1.5.0_06-b05, mixed mode)
> FileSystemView.getShellFolder: f=a
> java.io.FileNotFoundException
>         at sun.awt.shell.ShellFolder.getShellFolder(Unknown Source)
>         at javax.swing.filechooser.FileSystemView.getShellFolder(Unknown Source)
>         at javax.swing.filechooser.FileSystemView.getSystemIcon(Unknown Source)
>         at Test.main(Test.java:8)
> Exception in thread "main" java.lang.NullPointerException
>         at javax.swing.filechooser.FileSystemView.getSystemIcon(Unknown Source)
>         at Test.main(Test.java:8)
> Output in Harmony:
> Apache Harmony Launcher : (c) Copyright 1991, 2006 The Apache Software Foundatio
> n or its licensors, as applicable.
> java version "1.5.0"
> pre-alpha : not complete or compatible
> svn = r485537, (Dec 11 2006), Windows/ia32/msvc 1310, debug build
> http://incubator.apache.org/harmony
> PASSED

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira