From 9930a1f36c9f0909ad584356721590a0cb62e0de Mon Sep 17 00:00:00 2001 From: robm Date: Tue, 20 Feb 2018 14:00:02 +0000 Subject: [PATCH] 8191909: Nightly failures in nashorn suite Reviewed-by: chegar --- src/share/classes/sun/misc/Launcher.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/share/classes/sun/misc/Launcher.java b/src/share/classes/sun/misc/Launcher.java index a5d4b7270..aab195166 100644 --- a/src/share/classes/sun/misc/Launcher.java +++ b/src/share/classes/sun/misc/Launcher.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 1998, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 1998, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it @@ -48,7 +48,7 @@ import sun.net.www.ParseUtil; /** * This class is used by the system to launch the main application. -Launcher */ + */ public class Launcher { private static URLStreamHandlerFactory factory = new Factory(); private static Launcher launcher = new Launcher(); @@ -121,6 +121,7 @@ public class Launcher { static { ClassLoader.registerAsParallelCapable(); } + private static volatile ExtClassLoader instance = null; /** * create an ExtClassLoader. The ExtClassLoader is created @@ -128,6 +129,17 @@ public class Launcher { */ public static ExtClassLoader getExtClassLoader() throws IOException { + if (instance == null) { + synchronized(ExtClassLoader.class) { + if (instance == null) { + instance = createExtClassLoader(); + } + } + } + return instance; + } + + private static ExtClassLoader createExtClassLoader() throws IOException { try { // Prior implementations of this doPrivileged() block supplied // aa synthesized ACC via a call to the private method -- GitLab