Bug 31645 - do not use external compiler unless a non-mainstream compiler is configured
Summary: do not use external compiler unless a non-mainstream compiler is configured
Status: RESOLVED INVALID
Alias: None
Product: Tomcat 5
Classification: Unclassified
Component: Catalina (show other bugs)
Version: 5.0.27
Hardware: Other other
: P3 enhancement (vote)
Target Milestone: ---
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-10-11 15:07 UTC by Ralf Hauser
Modified: 2004-11-16 19:05 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ralf Hauser 2004-10-11 15:07:15 UTC
Just recently, my tomcat was hanging during compilation.

Interestingly, albeit not having done any compiler-related configuration, it
chose to start the compiler via the Runtime which is quite costly in terms of
memory and possibly also speed.

Wouldn't it be possible to have
org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory not get 
String compilerType = "extJavac" for the mainstream JVMs such as sun and ibm, etc. ?

the org.apache.jasper.EmbeddedServletOptions(config, context) seems to be set 
this.compiler = config.getInitParameter("compiler");
this way instructed by org.apache.jasper.servlet.JspServlet .

Any thoughts?

3XMTHREADINFO      "http-8443-Processor25" (TID:10068940, sys_thread_t:89CD5B0,
state:CW, native ID:4408EB30) prio=5
4XESTACKTRACE          at java.lang.Runtime.execInternal(Native Method)
4XESTACKTRACE          at java.lang.Runtime.exec(Runtime.java:602)
4XESTACKTRACE          at sun.reflect.NativeMethodAccessorImpl.invoke0(Native
Method)
4XESTACKTRACE          at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:85)
4XESTACKTRACE          at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:58)
4XESTACKTRACE          at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java(Compiled
Code))
4XESTACKTRACE          at java.lang.reflect.Method.invoke(Method.java(Compiled
Code))
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.Execute$Java13CommandLauncher.exec(Execute.java:808)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.Execute.launch(Execute.java:445)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.Execute.execute(Execute.java:459)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.compilers.DefaultCompilerAdapter.executeExternalCompile(DefaultCompilerAdapter.java:449)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.compilers.JavacExternal.execute(JavacExternal.java:44)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:942)
4XESTACKTRACE          at
org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:764)
4XESTACKTRACE          at
org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:379)
4XESTACKTRACE          at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:472)
4XESTACKTRACE          at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:451)
4XESTACKTRACE          at
org.apache.jasper.compiler.Compiler.compile(Compiler.java:439)
4XESTACKTRACE          at
org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:511)
4XESTACKTRACE          at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:295)
4XESTACKTRACE          at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
4XESTACKTRACE          at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
4XESTACKTRACE          at
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
4XESTACKTRACE          at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
4XESTACKTRACE          at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
4XESTACKTRACE          at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
4XESTACKTRACE          at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
4XESTACKTRACE          at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
4XESTACKTRACE          at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
4XESTACKTRACE          at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
4XESTACKTRACE          at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
4XESTACKTRACE          at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
4XESTACKTRACE          at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:535)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
4XESTACKTRACE          at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
4XESTACKTRACE          at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
4XESTACKTRACE          at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
4XESTACKTRACE          at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
4XESTACKTRACE          at
org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)
4XESTACKTRACE          at
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
4XESTACKTRACE          at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
4XESTACKTRACE          at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
4XESTACKTRACE          at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
4XESTACKTRACE          at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
4XESTACKTRACE          at java.lang.Thread.run(Thread.java:567)
Comment 1 Yoav Shapira 2004-10-14 17:37:40 UTC
I have one thought at this point: please don't use Bugzilla as a discussion 
forum.  Use the mailing list(s) to discuss possible enhancements, problems, 
issues, workarounds, etc.  If you have a concrete bug (reproducible, etc.), 
open a Bugzilla issue.  If you have a concrete enhancement, i.e. a .diff patch 
to current code, open a Bugzilla enhancement issue.  But don't just open 
Bugzilla issues asking for thoughts.  Thanks ;)