Browse Source

use reflection rather than getResource to locate javax.script

Using getResource won't load .class files on Jigsaw-modified versions of
Java9.

Bugzilla 58271: https://bz.apache.org/bugzilla/show_bug.cgi?id=58271
master
Stefan Bodewig 9 years ago
parent
commit
4ccca1fc14
2 changed files with 12 additions and 3 deletions
  1. +3
    -0
      WHATSNEW
  2. +9
    -3
      src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java

+ 3
- 0
WHATSNEW View File

@@ -30,6 +30,9 @@ Fixed bugs:
create archives of that kind.
https://issues.apache.org/jira/browse/COMPRESS-324

* <script> could fail to find javax.script on JDK9 with Jigsaw.
Bugzilla Report 58271

Other changes:
--------------



+ 9
- 3
src/main/org/apache/tools/ant/util/ScriptRunnerCreator.java View File

@@ -113,11 +113,17 @@ public class ScriptRunnerCreator {
if (!manager.equals(AUTO) && !manager.equals(checkManager)) {
return null;
}
if (scriptLoader.getResource(LoaderUtils.classNameToResource(managerClass)) == null) {
return null;
}
if (managerClass.equals(BSF_MANAGER)) {
if (scriptLoader.getResource(LoaderUtils.classNameToResource(managerClass)) == null) {
return null;
}
new ScriptFixBSFPath().fixClassLoader(scriptLoader, language);
} else {
try {
Class.forName(managerClass, true, scriptLoader);
} catch (Exception ex) {
return null;
}
}
try {
runner = (ScriptRunnerBase) Class.forName(


Loading…
Cancel
Save