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)