You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by "Steve Eynon (JIRA)" <ji...@apache.org> on 2012/08/29 14:16:07 UTC

[jira] [Commented] (TAP5-1733) Throw bespoke exceptions so they may be more easily identified by Error Handlers

    [ https://issues.apache.org/jira/browse/TAP5-1733?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13444003#comment-13444003 ] 

Steve Eynon commented on TAP5-1733:
-----------------------------------

Fixes to convert malformed URLs in T5.3.4 into a specific MalformedUrlException is given here:

How to return HTTP 404 for in-exact URL requests
http://tapestry.1045711.n5.nabble.com/How-to-return-HTTP-404-for-in-exact-URL-requests-td5715875.html

                
> Throw bespoke exceptions so they may be more easily identified by Error Handlers
> --------------------------------------------------------------------------------
>
>                 Key: TAP5-1733
>                 URL: https://issues.apache.org/jira/browse/TAP5-1733
>             Project: Tapestry 5
>          Issue Type: Improvement
>          Components: tapestry-core
>    Affects Versions: 5.3
>            Reporter: Steve Eynon
>            Priority: Minor
>              Labels: exception-handling
>
> Two exceptions in particular tend to be thrown prolifically by live sites when they are crawled by robots. They are:
>  - java.lang.RuntimeException: Forms require that the request method be POST and that the t:formdata query parameter have values.
>  - java.lang.IllegalArgumentException: Input string 'XXX' is not valid; the character 'X' at position X is not valid.
> To save needless reporting of benign errors (and to prevent the error logs from filling up) these exceptions are usually ignored by implementing Error Handlers. But the ErrorHandler has to currently check the exception message:
> if (e.getMessage().contains("Forms require that the request method be POST")) {
>     doIgnore();
> }
> which is both brittle and nasty. Instead it'd be great if Tapestry could throw some bespoke exceptions so the above could be re-written as:
> if (e instanceof FormsRequirePostException) {
>     doIngore();
> }
> Email thread below:
> http://tapestry.1045711.n5.nabble.com/Safari-for-example-browser-history-and-form-exception-td4942074.html

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira