From fca14b0d55e9abd4217ee4190caa82829e1f3880 Mon Sep 17 00:00:00 2001 From: Alexander Zvegintsev Date: Tue, 24 Jun 2014 10:36:35 +0400 Subject: [PATCH] 8042094: Test javax/swing/JFileChooser/7036025/bug7036025.java fails with java.lang.NullPointerException on Windows x86 Reviewed-by: ahgross, art, pchelko, mschoene --- jdk/src/share/classes/sun/awt/shell/ShellFolder.java | 11 ++++++----- .../sun/awt/shell/Win32ShellFolderManager2.java | 2 +- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java index 3795e146f2a..04b57c9d74f 100644 --- a/jdk/src/share/classes/sun/awt/shell/ShellFolder.java +++ b/jdk/src/share/classes/sun/awt/shell/ShellFolder.java @@ -33,8 +33,6 @@ import java.io.FileNotFoundException; import java.util.*; import java.util.concurrent.Callable; -import sun.reflect.misc.ReflectUtil; - /** * @author Michael Martak * @since 1.4 @@ -201,16 +199,19 @@ public abstract class ShellFolder extends File { // Static - private static ShellFolderManager shellFolderManager; + private static final ShellFolderManager shellFolderManager; - private static Invoker invoker; + private static final Invoker invoker; static { String managerClassName = (String)Toolkit.getDefaultToolkit(). getDesktopProperty("Shell.shellFolderManager"); Class managerClass = null; try { - managerClass = ReflectUtil.forName(managerClassName); + managerClass = Class.forName(managerClassName, false, null); + if (!ShellFolderManager.class.isAssignableFrom(managerClass)) { + managerClass = null; + } // swallow the exceptions below and use default shell folder } catch(ClassNotFoundException e) { } catch(NullPointerException e) { diff --git a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java index 426a0eb77ff..6c1f4a9a89c 100644 --- a/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java +++ b/jdk/src/windows/classes/sun/awt/shell/Win32ShellFolderManager2.java @@ -51,7 +51,7 @@ import sun.awt.util.ThreadGroupUtils; * @since 1.4 */ -public class Win32ShellFolderManager2 extends ShellFolderManager { +final class Win32ShellFolderManager2 extends ShellFolderManager { static { // Load library here