diff options
author | Thomas Watson | 2016-11-11 20:47:56 +0000 |
---|---|---|
committer | Thomas Watson | 2016-11-11 20:49:23 +0000 |
commit | 33ad3dfc7cca7bab93f67c53c8b288bafb251347 (patch) | |
tree | 83ef24307bd47674ebd2c1caa71aba02725086e5 /bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java | |
parent | e71e4cbe7f8f7d813d890e522979a490d8f295ab (diff) | |
download | rt.equinox.framework-33ad3dfc7cca7bab93f67c53c8b288bafb251347.tar.gz rt.equinox.framework-33ad3dfc7cca7bab93f67c53c8b288bafb251347.tar.xz rt.equinox.framework-33ad3dfc7cca7bab93f67c53c8b288bafb251347.zip |
Bug 507417 [java 9] cannot load java.* classes that are not contained inY20161117-1000I20161116-2000I20161115-2000I20161114-2000I20161114-0355I20161113-2000I20161112-2000I20161112-0405I20161111-2000
the java.base module
Change-Id: I788208133cd71e4ce6bbdc92bea890a8cf7d5ce4
Signed-off-by: Thomas Watson <tjwatson@us.ibm.com>
Diffstat (limited to 'bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java')
-rw-r--r-- | bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java index 560392b4b..282bfb7e1 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/EquinoxContainerAdaptor.java @@ -10,6 +10,7 @@ *******************************************************************************/ package org.eclipse.osgi.internal.framework; +import java.lang.reflect.Method; import java.security.ProtectionDomain; import java.util.*; import java.util.concurrent.*; @@ -29,7 +30,18 @@ import org.osgi.framework.hooks.resolver.ResolverHookFactory; import org.osgi.framework.wiring.BundleRevision; public class EquinoxContainerAdaptor extends ModuleContainerAdaptor { - private static final ClassLoader BOOT_CLASSLOADER = new ClassLoader(Object.class.getClassLoader()) { /* boot class loader */}; + public static final ClassLoader BOOT_CLASSLOADER; + static { + ClassLoader platformClassLoader = null; + try { + Method getPlatformClassLoader = ClassLoader.class.getMethod("getPlatformClassLoader"); //$NON-NLS-1$ + platformClassLoader = (ClassLoader) getPlatformClassLoader.invoke(null); + } catch (Throwable t) { + // try everything possible to not fail <clinit> + platformClassLoader = new ClassLoader(Object.class.getClassLoader()) { /* boot class loader */}; + } + BOOT_CLASSLOADER = platformClassLoader; + } private final EquinoxContainer container; private final Storage storage; private final OSGiFrameworkHooks hooks; |