Skip to content
Snippets Groups Projects
Commit 3efcb098 authored by felmer's avatar felmer
Browse files

SSDM-3745: Jython27ClassLoader bug fixed: Also exclude com.sun. classes.

SVN: 36815
parent 5025a7cc
No related branches found
No related tags found
No related merge requests found
......@@ -22,8 +22,10 @@ import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.io.IOUtils;
......@@ -47,6 +49,7 @@ import ch.systemsx.cisd.common.exceptions.EnvironmentFailureException;
*/
public class Jython27ClassLoader extends ClassLoader
{
private static final List<String> EXCLUDED_PACKAGES_STARTS = Arrays.asList("java", "sun.", "com.sun.");
private final URLClassLoader jythonJarClassLoader;
private final Map<String, Class<?>> cachedClasses = new HashMap<>();
......@@ -75,7 +78,7 @@ public class Jython27ClassLoader extends ClassLoader
Class<?> clazz = cachedClasses.get(name);
if (clazz == null)
{
if (name.startsWith("sun.") == false && name.startsWith("java") == false)
if (excludedPackageStart(name) == false)
{
clazz = tryLoadClass(jythonJarClassLoader, name);
}
......@@ -103,6 +106,18 @@ public class Jython27ClassLoader extends ClassLoader
return clazz;
}
private boolean excludedPackageStart(String className)
{
for (String packageStart : EXCLUDED_PACKAGES_STARTS)
{
if (className.startsWith(packageStart))
{
return true;
}
}
return false;
}
private void definePackage(String className)
{
String packageName = getPackageName(className);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment