From: <cg...@us...> - 2009-01-24 20:11:56
|
Revision: 5972 http://jython.svn.sourceforge.net/jython/?rev=5972&view=rev Author: cgroves Date: 2009-01-24 20:11:54 +0000 (Sat, 24 Jan 2009) Log Message: ----------- Try the current classloader for places where the context classloader isn't set Modified Paths: -------------- trunk/jython/src/org/python/core/ClasspathPyImporter.java Modified: trunk/jython/src/org/python/core/ClasspathPyImporter.java =================================================================== --- trunk/jython/src/org/python/core/ClasspathPyImporter.java 2009-01-24 20:10:59 UTC (rev 5971) +++ trunk/jython/src/org/python/core/ClasspathPyImporter.java 2009-01-24 20:11:54 UTC (rev 5972) @@ -83,27 +83,32 @@ } @Override - protected String makeEntry(String fullFilename) { - if (entries.containsKey(fullFilename)) { - return fullFilename; + protected String makeEntry(String filename) { + if (entries.containsKey(filename)) { + return filename; } - InputStream is = null; - ClassLoader classLoader = Py.getSystemState().getClassLoader(); - if (classLoader != null) { - Py.writeDebug("import", "trying " + fullFilename + " in sys class loader"); - is = classLoader.getResourceAsStream(fullFilename); + InputStream is = tryClassLoader(filename, Py.getSystemState().getClassLoader(), "sys"); + if (is == null) { + is = tryClassLoader(filename, Thread.currentThread().getContextClassLoader(), "context"); } if (is == null) { - Py.writeDebug("import", "trying " + fullFilename + " in context class loader"); - is = Thread.currentThread().getContextClassLoader().getResourceAsStream(fullFilename); + is = tryClassLoader(filename, ClasspathPyImporter.class.getClassLoader(), "current"); } if (is != null) { - entries.put(fullFilename, is); - return fullFilename; + entries.put(filename, is); + return filename; } return null; } + private InputStream tryClassLoader(String fullFilename, ClassLoader loader, String name) { + if (loader != null) { + Py.writeDebug("import", "trying " + fullFilename + " in " + name + " class loader"); + return loader.getResourceAsStream(fullFilename); + } + return null; + } + @Override protected String makeFilename(String fullname) { return path.replace(PYCLASSPATH_PREFIX, "") + fullname.replace('.', '/'); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |