Ticket #91 (closed defect: fixed)

Opened 14 months ago

Last modified 2 months ago

java.lang.NoSuchMethodError when executing test on JRE 1.6.0 (dp-b88-34) / Mac OS X

Reported by: odony Owned by: fcohen
Priority: minor Milestone:
Version: 5.2 Keywords:
Cc:

Description

It looks like there is an inconsistency in the API (javax.script.Invocable) between the Apple and SUN implementations of the JRE 1.6:

Invocable.invoke(String arg0, Object... arg1) Invocable.invoke(Object arg0, Object... arg1)

This is obviously a bug in the current beta version of Java 6 on OSX 10.4, however this is the only version of Java 6 we Mac users are entitled to... therefore it would be wonderful to have a workaround for this case (especially since the final version of Java 6 might only be released for the upcoming OSX 10.5)

See also this post in the java-dev apple mailing-list.

Below is the complete stacktrace:

Caught a throwable java.lang.NoSuchMethodError: javax.script.Invocable.invokeFunction(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
java.lang.NoSuchMethodError: javax.script.Invocable.invokeFunction(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/Object;
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.ScriptRunner.argumentsFormCallScript(ScriptRunner.java:458)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.ScriptRunner.argumentsFromCall(ScriptRunner.java:419)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.ScriptRunner.setupMethodForTest(ScriptRunner.java:225)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.ScriptRunner.setMethods(ScriptRunner.java:213)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.ScriptRunner.<init>(ScriptRunner.java:192)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.TestusecaseRunner.run(TestusecaseRunner.java:409)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.TestusecaseRunner.createUsecase(TestusecaseRunner.java:234)
        at com.pushtotest.testmaker.XSTest.xml.TestScenario.TestscenarioRunner.runUsecase(TestscenarioRunner.java:794)
        at com.pushtotest.testnetwork.Scenario.run(Unknown Source)
        at com.pushtotest.testnetwork.TestNode.doExecute(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:589)
        at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
        at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
        at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:868)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:663)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:637)

Change History

Changed 14 months ago by fcohen

  • owner set to llara@…

I agree that a workaround would be good. One thing you should know is that we made the TestNodes? run on Java 1.5. However, when running on 1.5 you cannot use the JSR 223 ScriptEngine? languages. You can still use Java, Jython, TestGen4Web and soapUI test runner. -Frank

Changed 14 months ago by odony

Thanks for the info Frank! I will look into running the nodes on 1.5, as we are mainly trying to run jython- and testgen4web- based tests at the moment.

Changed 14 months ago by fcohen

  • owner changed from llara@… to fcohen
  • priority changed from major to minor

Changed 7 months ago by fcohen

  • version changed from 5 to 5.2

Changed 6 months ago by root

  • milestone deleted

Milestone beta deleted

Changed 2 months ago by fcohen

  • status changed from new to closed
  • resolution set to fixed

Seems to be solved by the official Apple JDK 1.6 release for Mac OS X 10.5. -Frank

Note: See TracTickets for help on using tickets.