[ https://issues.apache.org/jira/browse/CASSANDRA-7430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michael Shuler updated CASSANDRA-7430: -------------------------------------- Fix Version/s: 3.0 2.1.1 > generate-eclipse-files target on JDK 8 causes ReferenceError: "importClass" > is not defined > ------------------------------------------------------------------------------------------ > > Key: CASSANDRA-7430 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7430 > Project: Cassandra > Issue Type: Bug > Environment: java version "1.8.0_05" > Java(TM) SE Runtime Environment (build 1.8.0_05-b13) > Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode) > Reporter: Kirk True > Priority: Trivial > Fix For: 2.1.1, 3.0 > > Attachments: 7430.txt > > > If I run {{ant generate-eclipse-files}} under JDK 8, I get this error: > {noformat} > BUILD FAILED > /Users/kirk/dev/cassandra/build.xml:1449: javax.script.ScriptException: > ReferenceError: "importClass" is not defined in <eval> at line number 2 > at > jdk.nashorn.api.scripting.NashornScriptEngine.throwAsScriptException(NashornScriptEngine.java:564) > at > jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:548) > at > jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:528) > at > jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:524) > at > jdk.nashorn.api.scripting.NashornScriptEngine.eval(NashornScriptEngine.java:194) > at javax.script.AbstractScriptEngine.eval(AbstractScriptEngine.java:264) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) > at org.apache.tools.ant.util.ReflectUtil.invoke(ReflectUtil.java:108) > at > org.apache.tools.ant.util.ReflectWrapper.invoke(ReflectWrapper.java:81) > at > org.apache.tools.ant.util.optional.JavaxScriptRunner.evaluateScript(JavaxScriptRunner.java:103) > at > org.apache.tools.ant.util.optional.JavaxScriptRunner.executeScript(JavaxScriptRunner.java:67) > at org.apache.tools.ant.taskdefs.optional.Script.execute(Script.java:52) > at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292) > at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:483) > at > org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106) > at org.apache.tools.ant.Task.perform(Task.java:348) > at org.apache.tools.ant.Target.execute(Target.java:435) > at org.apache.tools.ant.Target.performTasks(Target.java:456) > at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393) > at org.apache.tools.ant.Project.executeTarget(Project.java:1364) > at > org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41) > at org.apache.tools.ant.Project.executeTargets(Project.java:1248) > at org.apache.tools.ant.Main.runBuild(Main.java:851) > at org.apache.tools.ant.Main.startAnt(Main.java:235) > at org.apache.tools.ant.launch.Launcher.run(Launcher.java:280) > at org.apache.tools.ant.launch.Launcher.main(Launcher.java:109) > Caused by: <eval>:2 ReferenceError: "importClass" is not defined > at jdk.nashorn.internal.runtime.ECMAErrors.error(ECMAErrors.java:56) > at > jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:318) > at > jdk.nashorn.internal.runtime.ECMAErrors.referenceError(ECMAErrors.java:290) > at > jdk.nashorn.api.scripting.NashornScriptEngine.__noSuchProperty__(NashornScriptEngine.java:274) > at > jdk.nashorn.internal.scripts.Script$engine._L35(nashorn:engine/resources/engine.js:37) > at jdk.nashorn.internal.scripts.Script$\^eval\_.runScript(<eval>:2) > at > jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:498) > at > jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:206) > at > jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:378) > at > jdk.nashorn.api.scripting.NashornScriptEngine.evalImpl(NashornScriptEngine.java:546) > ... 29 more > {noformat} > Apparently this is due to changes with the new Nashorn ECMAScript engine in > the new JDK. > According to > http://stackoverflow.com/questions/22503100/java-8-javascript-engine-backwards-compatibility, > one way to solve this is thusly: > {noformat} > diff --git a/build.xml b/build.xml > index 02e1f98..245ca8e 100644 > --- a/build.xml > +++ b/build.xml > @@ -1447,7 +1447,7 @@ > </path> > <property name="eclipse-project-libs" > refid="eclipse-project-libs-path"/> > <script language="javascript"> <![CDATA[ > - importClass(java.io.File); > + var File = java.io.File; > jars = > project.getProperty("eclipse-project-libs").split(project.getProperty("path.separator")); > > cp = ""; > {noformat} -- This message was sent by Atlassian JIRA (v6.2#6252)