-
-
Notifications
You must be signed in to change notification settings - Fork 925
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Isolate code that uses class loaders.
- 9.4.12.0
- 9.4.11.0
- 9.4.10.0
- 9.4.9.0
- 9.4.8.0
- 9.4.7.0
- 9.4.6.0
- 9.4.5.0
- 9.4.4.0
- 9.4.3.0
- 9.4.2.0
- 9.4.1.0
- 9.4.0.0
- 9.3.15.0
- 9.3.14.0
- 9.3.13.0
- 9.3.12.0
- 9.3.11.0
- 9.3.10.0
- 9.3.9.0
- 9.3.8.0
- 9.3.7.0
- 9.3.6.0
- 9.3.5.0
- 9.3.4.0
- 9.3.3.0
- 9.3.2.0
- 9.3.1.0
- 9.3.0.0
- 9.2.21.0
- 9.2.20.1
- 9.2.20.0
- 9.2.19.0
- 9.2.18.0
- 9.2.17.0
- 9.2.16.0
- 9.2.15.0
- 9.2.14.0
- 9.2.13.0
- 9.2.12.0
- 9.2.11.1
- 9.2.11.0
- 9.2.10.0
- 9.2.9.0
- 9.2.8.0
- 9.2.7.0
- 9.2.6.0
- 9.2.5.0
- 9.2.4.1
- 9.2.4.0
- 9.2.3.0
- 9.2.2.0
- 9.2.1.0
- 9.2.0.0
- 9.1.17.0
- 9.1.16.0
- 9.1.15.0
- 9.1.14.0
- 9.1.13.0
- 9.1.12.0
- 9.1.11.0
- 9.1.10.0
- 9.1.9.0
- 9.1.8.0
- 9.1.7.0
- 9.1.6.0
- 9.1.5.0
- 9.1.4.0
- 9.1.3.0
- 9.1.2.0
- 9.1.1.0
- 9.1.0.0
- 9.0.5.0
- 9.0.4.0
- 9.0.3.0
- 9.0.1.0
- 9.0.0.0
- 9.0.0.0.rc2
- 9.0.0.0.rc1
- 9.0.0.0.pre2
1 parent
47e3adc
commit 02bcdfe
Showing
6 changed files
with
76 additions
and
30 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -390,7 +390,7 @@ public InputStream getScriptSource() { | |
if (script.startsWith("file:") && script.indexOf(".jar!/") != -1) { | ||
stream = new URL("jar:" + script).openStream(); | ||
} else if (script.startsWith("classpath:")) { | ||
stream = Ruby.getClassLoader().getResourceAsStream(script.substring("classpath:".length())); | ||
stream = getScriptSourceFromJar(script); | ||
} else { | ||
File file = JRubyFile.create(getCurrentDirectory(), getScriptFileName()); | ||
if (isXFlag()) { | ||
|
@@ -414,6 +414,10 @@ public InputStream getScriptSource() { | |
} | ||
} | ||
|
||
private InputStream getScriptSourceFromJar(String script) { | ||
return Ruby.getClassLoader().getResourceAsStream(script.substring("classpath:".length())); | ||
} | ||
|
||
private static InputStream findScript(File file) throws IOException { | ||
StringBuffer buf = new StringBuffer(); | ||
BufferedReader br = new BufferedReader(new FileReader(file)); | ||
|
@@ -1401,6 +1405,16 @@ public String getProfilingService() { | |
public void setProfilingService( String service ) { | ||
this.profilingService = service; | ||
} | ||
|
||
private static ClassLoader setupLoader() { | ||
final ClassLoader thisLoader = RubyInstanceConfig.class.getClassLoader(); | ||
|
||
if (thisLoader == null) { | ||
return null; | ||
} else { | ||
return Thread.currentThread().getContextClassLoader(); | ||
This comment has been minimized.
Sorry, something went wrong. |
||
} | ||
} | ||
|
||
//////////////////////////////////////////////////////////////////////////// | ||
// Configuration fields. | ||
|
@@ -1446,7 +1460,7 @@ public void setProfilingService( String service ) { | |
private ProfileOutput profileOutput = new ProfileOutput(System.err); | ||
private String profilingService; | ||
|
||
private ClassLoader thisLoader = RubyInstanceConfig.class.getClassLoader(); | ||
private ClassLoader thisLoader = setupLoader(); | ||
// thisLoader can be null for example when jruby comes from the boot-classLoader | ||
private ClassLoader loader = thisLoader == null ? Thread.currentThread().getContextClassLoader() : thisLoader; | ||
This comment has been minimized.
Sorry, something went wrong.
mkristian
Member
|
||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
this is wrong in every case where
RubyInstanceConfig.class.getClassLoader()
is NOT the Thread.currentThread.contextClassLoader. you end up with classloader which can not load the jruby kernel (require 'java' and require 'jruby')and that are the failing tests on travis (at least partially)
jruby just works fine without any Thread.currentThread.contextClassLoader involved - like OSGi frameworks.