Why the default error page is not shown even after custom page is defined in JBoss Seam pages.xml?
Issue
When an invalid request parameter is specified on a Seam page, the resulting exception does not redirect to the custom error page. The standard page HTTP Status 500 Exception report is shown. Here is an example of URL:
http://localhost:8080/web/login.page?cid=%%27HTTP/1.1
Note: other exceptions are correctly redirected to the custom error page. The invalid request param is the only case where it uses the default error page. The stack trace in the logs is:
2012-04-10 17:21:45,170 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.lang.IllegalArgumentException: URLDecoder: Illegal hex characters in escape (%) pattern - For input string: "%2"
at <a class="make_room_for_kcs" href="http://java.net" target="_blank">java.net</a>.URLDecoder.decode(URLDecoder.java:173)
at org.ajax4jsf.webapp.BaseFilter.parseQueryString(BaseFilter.java:210)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:325)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
...
Also, the following message appears in server.log:
2012-04-11 11:56:55,246 ERROR [[localhost]] Exception Processing ErrorPage[errorCode=500, location=/error.page]
Below is the pages.xml configuration:
<exception>
<redirect view-id="/error.xhtml">
<message severity="error">Unexpected error, please try again</message>
</redirect>
</exception>
Environment
- JBoss Enterprise Application Platform 5.x
- JBoss Web Framework Kit all versions
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.