We use tomcat for production and generally use Jetty for development. I use tomcat every week or so for various problems and to make sure things are still kosher. Today I tried dropping our war in Tomcat and couldn't get the app to load at all. Our custom exception page was failing when Tapestry tried to access it. I took out our custom Exception page and ExceptionPresenter and got to what I think is the root error. Here is the stack trace from my tomcat logs:
05-10-27 10:39:56 ERROR (ServletWebResponse.java:103) - Unable to reset response buffer: java.lang.IllegalStateException java.lang.IllegalStateException at org.apache.catalina.connector.ResponseFacade.reset(ResponseFacade.java :307) at org.apache.tapestry.web.ServletWebResponse.reset(ServletWebResponse.java :99) at org.apache.tapestry.web.ServletWebResponse.getPrintWriter( ServletWebResponse.java:73) at $WebResponse_10732b68ce5.getPrintWriter($WebResponse_10732b68ce5.java) at $WebResponse_10732b68bb8.getPrintWriter($WebResponse_10732b68bb8.java) at org.apache.tapestry.services.impl.ResponseRendererImpl.renderResponse( ResponseRendererImpl.java:67) at $ResponseRenderer_10732b68bd2.renderResponse($ResponseRenderer_10732b68bd2.java) at org.apache.tapestry.error.ExceptionPresenterImpl.presentException( ExceptionPresenterImpl.java:46) at $ExceptionPresenter_10732b68bc0.presentException($ExceptionPresenter_10732b68bc0.java) at org.apache.tapestry.engine.AbstractEngine.activateExceptionPage( AbstractEngine.java:121) at org.apache.tapestry.engine.AbstractEngine.service(AbstractEngine.java :280) at org.apache.tapestry.services.impl.InvokeEngineTerminator.service( InvokeEngineTerminator.java:60) at $WebRequestServicer_10732b68c18.service($WebRequestServicer_10732b68c18.java) at $WebRequestServicer_10732b68c14.service($WebRequestServicer_10732b68c14.java) at org.apache.tapestry.services.impl.WebRequestServicerPipelineBridge.service( WebRequestServicerPipelineBridge.java:56) at $ServletRequestServicer_10732b68bf8.service($ServletRequestServicer_10732b68bf8.java) at org.apache.tapestry.request.DecodedRequestInjector.service( DecodedRequestInjector.java:55) at $ServletRequestServicerFilter_10732b68bf4.service($ServletRequestServicerFilter_10732b68bf4.java) at $ServletRequestServicer_10732b68bfa.service($ServletRequestServicer_10732b68bfa.java) at collective.ui.custom.HibernateFilter.service(HibernateFilter.java:33) at $ServletRequestServicerFilter_10732b68bf2.service($ServletRequestServicerFilter_10732b68bf2.java) at $ServletRequestServicer_10732b68bfa.service($ServletRequestServicer_10732b68bfa.java) at org.apache.tapestry.multipart.MultipartDecoderFilter.service( MultipartDecoderFilter.java:52) at $ServletRequestServicerFilter_10732b68bf0.service($ServletRequestServicerFilter_10732b68bf0.java) at $ServletRequestServicer_10732b68bfa.service($ServletRequestServicer_10732b68bfa.java) at org.apache.tapestry.services.impl.SetupRequestEncoding.service( SetupRequestEncoding.java:53) at $ServletRequestServicerFilter_10732b68bf6.service($ServletRequestServicerFilter_10732b68bf6.java) at $ServletRequestServicer_10732b68bfa.service($ServletRequestServicer_10732b68bfa.java) at $ServletRequestServicer_10732b68bea.service($ServletRequestServicer_10732b68bea.java) at org.apache.tapestry.ApplicationServlet.doService(ApplicationServlet.java :141) at org.apache.tapestry.ApplicationServlet.doGet(ApplicationServlet.java:97) at javax.servlet.http.HttpServlet.service(HttpServlet.java:689) at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Unknown Source) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java :161) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:245) at org.apache.catalina.core.ApplicationFilterChain.access$000( ApplicationFilterChain.java:50) at org.apache.catalina.core.ApplicationFilterChain$1.run( ApplicationFilterChain.java:156) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:152) at collective.servlet.ResponseHeaderFilter.doFilter( ResponseHeaderFilter.java:32) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:243) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAsPrivileged(Unknown Source) at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:275) at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java :217) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:197) at org.apache.catalina.core.ApplicationFilterChain.access$000( ApplicationFilterChain.java:50) at org.apache.catalina.core.ApplicationFilterChain$1.run( ApplicationFilterChain.java:156) at java.security.AccessController.doPrivileged(Native Method) at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:152) 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(Unknown Source)
