Bug 1180568

Summary: [patch] Javascript use within ant script fails
Product: [Fedora] Fedora Reporter: Mat Booth <mat.booth>
Component: antAssignee: Mikolaj Izdebski <mizdebsk>
Status: CLOSED NEXTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 21CC: akurtako, java-sig-commits, jcapik, krzysztof.daniel, mizdebsk, mmatejov, msrb
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 1.9.4-5 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-01-13 09:54:16 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Attachments:
Description Flags
Patch to fix classpath for bsf plug-in none

Description Mat Booth 2015-01-09 13:23:14 UTC
Consider the following build.xml script:

<?xml version="1.0" encoding="UTF-8"?>
<project name="testing" basedir=".">
  <target name="all">
    <script language="javascript">
      <![CDATA[
        project.setProperty("beans", "cheese");
      ]]>
    </script>
    <echo>Current beans=${beans}.</echo>
  </target>
</project>

Executing "ant all" results in the following error:

all:
   [script] Jan 09, 2015 1:10:25 PM org.apache.bsf.BSFManager loadScriptingEngine
   [script] SEVERE: Exception :
   [script] java.lang.NoClassDefFoundError: org/mozilla/javascript/EvaluatorException
   [script]     at java.lang.Class.getDeclaredConstructors0(Native Method)
   [script]     at java.lang.Class.privateGetDeclaredConstructors(Class.java:2663)
   [script]     at java.lang.Class.getConstructor0(Class.java:3067)
   [script]     at java.lang.Class.newInstance(Class.java:408)
   [script]     at org.apache.bsf.BSFManager.loadScriptingEngine(BSFManager.java:697)
   [script]     at org.apache.bsf.BSFManager.exec(BSFManager.java:485)
   [script]     at org.apache.tools.ant.util.optional.ScriptRunner.executeScript(ScriptRunner.java:100)
   [script]     at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:52)
   [script]     at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
   [script]     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   [script]     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
   [script]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   [script]     at java.lang.reflect.Method.invoke(Method.java:483)
   [script]     at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
   [script]     at org.apache.tools.ant.Task.perform(Task.java:348)
   [script]     at org.apache.tools.ant.Target.execute(Target.java:435)
   [script]     at org.apache.tools.ant.Target.performTasks(Target.java:456)
   [script]     at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
   [script]     at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
   [script]     at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
   [script]     at org.apache.tools.ant.Project.executeTargets(Project.java:1248)
   [script]     at org.apache.tools.ant.Main.runBuild(Main.java:851)
   [script]     at org.apache.tools.ant.Main.startAnt(Main.java:235)
   [script]     at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
   [script]     at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
   [script] Caused by: java.lang.ClassNotFoundException: org.mozilla.javascript.EvaluatorException
   [script]     at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
   [script]     at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
   [script]     at java.security.AccessController.doPrivileged(Native Method)
   [script]     at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
   [script]     at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
   [script]     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
   [script]     at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
   [script]     ... 25 more
   [script] 

BUILD FAILED

Adding "rhino" to the /etc/ant.d/apache-bsf config fixes this.

Comment 1 Mat Booth 2015-01-13 09:38:27 UTC
Created attachment 979527 [details]
Patch to fix classpath for bsf plug-in

Comment 2 Mikolaj Izdebski 2015-01-13 09:41:17 UTC
Fixed in ant-1.9.4-5

Comment 3 Mikolaj Izdebski 2015-01-13 09:54:16 UTC
I believe that this bug is fixed in ant-1.9.4-5,
which is available in Fedora Rawhide, so I am closing this bug now.

The build containing the fix can be found at Koji:
http://koji.fedoraproject.org/koji/buildinfo?buildID=603652

This bug was fixed in the next release of Fedora, and is not planned
to be fixed in the release it was filed against.  If you want this bug
to be fixed in updates for Fedora 21, please say so in a comment.
Otherwise you can update to the newer release of Fedora to get the fix.