Hello Have you tried with a ComponenRequestFilter instead ?
Christophe 2009/10/6 Jan Jirout <jjir...@indracompany.com> > Hi All, > > I'm playing some time with t5. I have meet simple problem. I hope that it's > not my fault. > > So. > > I would like to handle "Error 404" in my application so I have in web.xml: > > <filter-mapping> > <filter-name>app</filter-name> > <url-pattern>/*</url-pattern> > <dispatcher>REQUEST</dispatcher> > <dispatcher>ERROR</dispatcher> > </filter-mapping> > > <error-page> > <error-code>404</error-code> > <location>/error404</location> > </error-page> > > > My Index.java is: > > > void onActivate(final String pageUrl) throws IOException { > if (isKnownPage(pageUrl)) { > //show page > } else { > response.sendError(404, null); > } > } > > If I access page "/hello" then pageUrl property is "hello". If there is > page /hello then this page is normally processed. If I sendError then page > error404 should be shown. This Error page exists. So when I access /blah > then /error404 page is shown. It works fine with jetty. But it doesn't work > with tomcat 6. > > I have tried to debug it, and it seems to me, that information about > content type is lost. In class BufferedGZipOutputStream is already > information about content type lost but in class PageResponseRendererImpl is > still present. > > thanks for help > > Jan > > > > Here is my stack trace: > SEVERE: Servlet.service() for servlet default threw exception > java.lang.NullPointerException > at > org.apache.tapestry5.internal.services.ResponseCompressionAnalyzerImpl.isCompressable(ResponseCompressionAnalyzerImpl.java:65) > at > $ResponseCompressionAnalyzer_1241954ff2c.isCompressable($ResponseCompressionAnalyzer_1241954ff2c.java) > at > org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.openResponseOutputStream(BufferedGZipOutputStream.java:77) > at > org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.checkForCutover(BufferedGZipOutputStream.java:70) > at > org.apache.tapestry5.internal.gzip.BufferedGZipOutputStream.write(BufferedGZipOutputStream.java:116) > at sun.nio.cs.StreamEncoder.writeBytes(StreamEncoder.java:202) > at sun.nio.cs.StreamEncoder.implWrite(StreamEncoder.java:263) > at sun.nio.cs.StreamEncoder.write(StreamEncoder.java:106) > at java.io.OutputStreamWriter.write(OutputStreamWriter.java:190) > at java.io.BufferedWriter.flushBuffer(BufferedWriter.java:111) > at java.io.BufferedWriter.write(BufferedWriter.java:212) > at java.io.PrintWriter.write(PrintWriter.java:412) > at java.io.PrintWriter.write(PrintWriter.java:429) > at java.io.PrintWriter.print(PrintWriter.java:559) > at org.apache.tapestry5.dom.Text.toMarkup(Text.java:59) > at > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840) > at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356) > at > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840) > at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356) > at > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840) > at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356) > at > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840) > at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356) > at > org.apache.tapestry5.dom.Element.writeChildMarkup(Element.java:840) > at org.apache.tapestry5.dom.Element.toMarkup(Element.java:356) > at org.apache.tapestry5.dom.Document.toMarkup(Document.java:163) > at org.apache.tapestry5.dom.Node.toMarkup(Node.java:80) > at > org.apache.tapestry5.internal.services.MarkupWriterImpl.toMarkup(MarkupWriterImpl.java:57) > at > org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) > at > $PageResponseRenderer_1241954ff57.renderPageResponse($PageResponseRenderer_1241954ff57.java) > at > org.apache.tapestry5.internal.services.DefaultRequestExceptionHandler.handleRequestException(DefaultRequestExceptionHandler.java:77) > at > $RequestExceptionHandler_1241954ff38.handleRequestException($RequestExceptionHandler_1241954ff38.java) > at > org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:42) > at > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java) > at > org.apache.tapestry5.services.TapestryModule$4.service(TapestryModule.java:778) > at > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java) > at > org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:767) > at > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java) > at > org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:85) > at > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:90) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:81) > at > org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) > at > org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:103) > at > $RequestHandler_1241954ff3a.service($RequestHandler_1241954ff3a.java) > at > $RequestHandler_1241954ff2f.service($RequestHandler_1241954ff2f.java) > at > org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:197) > at > org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) > at > $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java) > at > org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) > at > $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java) > at > org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) > at > $HttpServletRequestFilter_1241954ff2d.service($HttpServletRequestFilter_1241954ff2d.java) > at > $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java) > at > org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:726) > at > $HttpServletRequestHandler_1241954ff31.service($HttpServletRequestHandler_1241954ff31.java) > at > $HttpServletRequestHandler_1241954ff2b.service($HttpServletRequestHandler_1241954ff2b.java) > at > org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:127) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454) > at java.lang.Thread.run(Thread.java:619) > > > > > >