From 33ad3dfc7cca7bab93f67c53c8b288bafb251347 Mon Sep 17 00:00:00 2001 From: Thomas Watson Date: Fri, 11 Nov 2016 14:47:56 -0600 Subject: Bug 507417 [java 9] cannot load java.* classes that are not contained in the java.base module Change-Id: I788208133cd71e4ce6bbdc92bea890a8cf7d5ce4 Signed-off-by: Thomas Watson --- .../eclipse/osgi/internal/framework/ContextFinder.java | 2 +- .../eclipse/osgi/internal/framework/EquinoxContainer.java | 2 +- .../osgi/internal/framework/EquinoxContainerAdaptor.java | 14 +++++++++++++- .../eclipse/osgi/internal/loader/buddy/SystemPolicy.java | 15 +++++---------- 4 files changed, 20 insertions(+), 13 deletions(-) (limited to 'bundles/org.eclipse.osgi/container') diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/ContextFinder.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/ContextFinder.java index 3be84911e..7ce416cd5 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/ContextFinder.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/framework/ContextFinder.java @@ -46,7 +46,7 @@ public class ContextFinder extends ClassLoader implements PrivilegedAction + platformClassLoader = new ClassLoader(Object.class.getClassLoader()) { /* boot class loader */}; + } + BOOT_CLASSLOADER = platformClassLoader; + } private final EquinoxContainer container; private final Storage storage; private final OSGiFrameworkHooks hooks; diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/SystemPolicy.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/SystemPolicy.java index 859837657..7edefe1af 100644 --- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/SystemPolicy.java +++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/internal/loader/buddy/SystemPolicy.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2012 IBM Corporation and others. + * Copyright (c) 2005, 2016 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -15,15 +15,10 @@ import java.net.URL; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.Enumeration; +import org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor; public class SystemPolicy implements IBuddyPolicy { - private static class ParentClassLoader extends ClassLoader { - protected ParentClassLoader() { - super(Object.class.getClassLoader()); - } - } - public static final byte BOOT = 0; public static final byte EXT = 1; public static final byte APP = 2; @@ -57,15 +52,15 @@ public class SystemPolicy implements IBuddyPolicy { case APP : if (ClassLoader.getSystemClassLoader() != null) return ClassLoader.getSystemClassLoader(); - return new ParentClassLoader(); + return EquinoxContainerAdaptor.BOOT_CLASSLOADER; case BOOT : - return new ParentClassLoader(); + return EquinoxContainerAdaptor.BOOT_CLASSLOADER; case EXT : if (ClassLoader.getSystemClassLoader() != null) return ClassLoader.getSystemClassLoader().getParent(); - return new ParentClassLoader(); + return EquinoxContainerAdaptor.BOOT_CLASSLOADER; } return null; } -- cgit v1.2.3