--- old/src/java.desktop/share/classes/java/awt/Desktop.java 2016-11-21 09:51:01.000000000 +0300 +++ new/src/java.desktop/share/classes/java/awt/Desktop.java 2016-11-21 09:51:01.000000000 +0300 @@ -279,6 +279,8 @@ } } + private static Desktop desktop; + /** * Returns the {@code Desktop} instance of the current * desktop context. On some platforms the Desktop API may not be @@ -300,11 +302,18 @@ } sun.awt.AppContext context = sun.awt.AppContext.getAppContext(); - Desktop desktop = (Desktop)context.get(Desktop.class); + + Desktop desktop = (context == null) + ? Desktop.desktop + : (Desktop)context.get(Desktop.class); if (desktop == null) { desktop = new Desktop(); - context.put(Desktop.class, desktop); + if (context != null) { + context.put(Desktop.class, desktop); + } else { + Desktop.desktop = desktop; + } } return desktop; --- old/src/java.desktop/share/classes/java/awt/Taskbar.java 2016-11-21 09:51:02.000000000 +0300 +++ new/src/java.desktop/share/classes/java/awt/Taskbar.java 2016-11-21 09:51:02.000000000 +0300 @@ -196,6 +196,8 @@ } } + private static Taskbar taskbar; + /** * Returns the {@code Taskbar} instance of the current * taskbar context. On some platforms the Taskbar API may not be @@ -217,12 +219,20 @@ "supported on the current platform"); } + Taskbar taskbar = null; sun.awt.AppContext context = sun.awt.AppContext.getAppContext(); - Taskbar taskbar = (Taskbar)context.get(Taskbar.class); + + taskbar = (context == null) + ? Taskbar.taskbar + : (Taskbar)context.get(Taskbar.class); if (taskbar == null) { taskbar = new Taskbar(); - context.put(Taskbar.class, taskbar); + if (context != null) { + context.put(Taskbar.class, taskbar); + } else { + Taskbar.taskbar = taskbar; + } } return taskbar;