diff --git a/src/share/classes/java/awt/SplashScreen.java b/src/share/classes/java/awt/SplashScreen.java index 64ec967d00fa65e4663765a95afdaf0eda911071..e02a6172df7e66f586e781fccecb97a719dbbd9b 100644 --- a/src/share/classes/java/awt/SplashScreen.java +++ b/src/share/classes/java/awt/SplashScreen.java @@ -318,6 +318,12 @@ public final class SplashScreen { checkVisible(); _close(splashPtr); image = null; + SplashScreen.markClosed(); + } + } + + static void markClosed() { + synchronized (SplashScreen.class) { wasClosed = true; theInstance = null; } diff --git a/src/share/classes/java/awt/Window.java b/src/share/classes/java/awt/Window.java index c603767dd74de627ade7d10decf75cc2630ff30d..7dce80e9564de856c0cab5f1bfddfee284375171 100644 --- a/src/share/classes/java/awt/Window.java +++ b/src/share/classes/java/awt/Window.java @@ -928,7 +928,10 @@ public class Window extends Container implements Accessible { return; } if (beforeFirstWindowShown.getAndSet(false)) { + // We don't use SplashScreen.getSplashScreen() to avoid instantiating + // the object if it hasn't been requested by user code explicitly SunToolkit.closeSplashScreen(); + SplashScreen.markClosed(); } }