Closed Bug 290118 Opened 20 years ago Closed 20 years ago

Exception - NoClassDefFoundError - "org/mozilla/javascript/optimizer/OptRuntime"

Categories

(Rhino Graveyard :: Core, defect)

x86
Windows Server 2003
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED INVALID

People

(Reporter: Amitabh.Mathur, Assigned: igor)

Details

User-Agent:       Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.1.4322)
Build Identifier: Rhino/1.6

We are trying to test an application using Jakarta Cactus - Httpunit.
When we start the tomcat server we got the following message - "Rhino classes 
(js.jar) not found - Javascript disabled".

As we need to test some functionality using Javascript we added the js.jar in 
the CLASSPATH.

When we add this jar file and run the run the test case, we always get the 
exception - 

1) testClickOnCancel
(test.tao.poc.presentation.testactions.TestAmountTransferPage)
java.lang.NoClassDefFoundError: org/mozilla/javascript/optimizer/OptRuntime
      at org.mozilla.javascript.gen.c3._c0(httpunit)
      at org.mozilla.javascript.gen.c3.call(httpunit)
      at org.mozilla.javascript.ContextFactory.doTopCall
(ContextFactory.java:304)
      at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:2769)
      at org.mozilla.javascript.gen.c3.call(httpunit)
      at org.mozilla.javascript.gen.c3.exec(httpunit)
      at org.mozilla.javascript.Context.evaluateString(Context.java:1220)
      at 
com.meterware.httpunit.javascript.JavaScript$JavaScriptEngine.executeScript
(JavaScript.java:122)
      at com.meterware.httpunit.scripting.ScriptableDelegate.runScript
(ScriptableDelegate.java:64)
      at com.meterware.httpunit.parsing.ScriptFilter.getTranslatedScript
(ScriptFilter.java:150)
      at com.meterware.httpunit.parsing.ScriptFilter.endElement
(ScriptFilter.java:131)
      at org.cyberneko.html.HTMLTagBalancer.endElement(Unknown Source)
      at org.cyberneko.html.HTMLScanner$SpecialScanner.scan(Unknown Source)
      at org.cyberneko.html.HTMLScanner.scanDocument(Unknown Source)
      at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
      at org.cyberneko.html.HTMLConfiguration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
      at com.meterware.httpunit.parsing.NekoHTMLParser.parse
(NekoHTMLParser.java:41)
      at com.meterware.httpunit.HTMLPage.parse(HTMLPage.java:244)
      at com.meterware.httpunit.WebResponse.getReceivedPage
(WebResponse.java:1014)
      at com.meterware.httpunit.WebResponse$Scriptable.load
(WebResponse.java:611)
      at com.meterware.httpunit.javascript.JavaScript$Window.initialize
(JavaScript.java:424)
      at com.meterware.httpunit.javascript.JavaScript.run(JavaScript.java:80)
      at com.meterware.httpunit.javascript.JavaScriptEngineFactory.associate
(JavaScriptEngineFactory.java:46)
      at com.meterware.httpunit.RequestContext.runScripts
(RequestContext.java:44)
      at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:119)
      at com.meterware.httpunit.WebWindow.getResponse(WebWindow.java:99)
      at com.meterware.httpunit.WebClient.getResponse(WebClient.java:86)
      at test.tao.poc.presentation.testactions.TestAmountTransferPage.setUp
(TestAmountTransferPage.java:77)
      at org.apache.cactus.internal.AbstractCactusTestCase.runBareServer
(AbstractCactusTestCase.java:153)
      at org.apache.cactus.internal.server.AbstractWebTestCaller.doTest
(AbstractWebTestCaller.java:119)
      at 
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_around
Body0(AbstractWebTestController.java:93)
      at 
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest_around
Body1$advice(AbstractWebTestController.java:124)
      at 
org.apache.cactus.internal.server.AbstractWebTestController.handleRequest
(AbstractWebTestController.java)
      at org.apache.cactus.server.JspTestRedirector.doGet_aroundBody0
(JspTestRedirector.java:70)
      at org.apache.cactus.server.JspTestRedirector.doGet_aroundBody1$advice
(JspTestRedirector.java:124)
      at org.apache.cactus.server.JspTestRedirector.doGet
(JspTestRedirector.java)
      at org.apache.jsp.jspRedirector_jsp._jspService(jspRedirector_jsp.java:70)
      at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at org.apache.jasper.servlet.JspServletWrapper.service
(JspServletWrapper.java:324)
      at org.apache.jasper.servlet.JspServlet.serviceJspFile
(JspServlet.java:292)
      at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
      at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
      at sun.reflect.GeneratedMethodAccessor79.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:25)
      at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:239)
      at java.security.AccessController.doPrivileged(Native Method)
      at javax.security.auth.Subject.doAsPrivileged(Subject.java:500)
      at org.apache.catalina.security.SecurityUtil.execute
(SecurityUtil.java:268)
      at org.apache.catalina.security.SecurityUtil.doAsPrivilege
(SecurityUtil.java:157)
      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
(ApplicationFilterChain.java:231)
      at org.apache.catalina.core.ApplicationFilterChain.access$000
(ApplicationFilterChain.java:50)
      at org.apache.catalina.core.ApplicationFilterChain$1.run
(ApplicationFilterChain.java:140)
      at java.security.AccessController.doPrivileged(Native Method)
      at org.apache.catalina.core.ApplicationFilterChain.doFilter
(ApplicationFilterChain.java:136)
      at org.apache.catalina.core.StandardWrapperValve.invoke
(StandardWrapperValve.java:214)
      at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
      at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
      at org.apache.catalina.core.StandardContextValve.invokeInternal
(StandardContextValve.java:198)
      at org.apache.catalina.core.StandardContextValve.invoke
(StandardContextValve.java:152)
      at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
      at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
      at org.apache.catalina.core.StandardHostValve.invoke
(StandardHostValve.java:137)
      at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
      at org.apache.catalina.valves.ErrorReportValve.invoke
(ErrorReportValve.java:118)
      at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:102)
      at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
      at org.apache.catalina.core.StandardEngineValve.invoke
(StandardEngineValve.java:109)
      at org.apache.catalina.core.StandardValveContext.invokeNext
(StandardValveContext.java:104)
      at org.apache.catalina.core.StandardPipeline.invoke
(StandardPipeline.java:520)
      at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
      at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
      at org.apache.coyote.http11.Http11Processor.process
(Http11Processor.java:799)
      at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnectio
n(Http11Protocol.java:705)
      at org.apache.tomcat.util.net.TcpWorkerThread.runIt
(PoolTcpEndpoint.java:577)
      at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run
(ThreadPool.java:683)
      at java.lang.Thread.run(Thread.java:534).

Can you please help us?

Reproducible: Always

Steps to Reproduce:
1. Add js.jar to the CLASSPATH
2. Start tomcat server
3. Run the test case file.

Actual Results:  
Exception - NoClassDefFoundError - "org/mozilla/javascript/optimizer/OptRuntime"

Expected Results:  
Run the test case without any problem.
This is not Rhino issue but a deficiency in HTTPUnit which does not properly
instruct Rhino about web application classloader. Given the lack of loader
initialization Rhino tries to use Thread.getContextClassLoader() which does not
work for servlets.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
Hi Igor,
   We also thought it was a problem with HTTPUnit. Hence we are using scripting 
to trigger the events through Java Script.

Thanking for responding.

Regards,
Amitabh
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.