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)
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 ;)