You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Alexander Klimetschek (JIRA)" <ji...@apache.org> on 2009/04/14 15:26:15 UTC

[jira] Updated: (SLING-921) SlingSafeMethodsServlet swallows ClassCastExceptions

     [ https://issues.apache.org/jira/browse/SLING-921?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Alexander Klimetschek updated SLING-921:
----------------------------------------

    Attachment: SLING-921.patch

This patch uses instanceof for the check for the sling specific interfaces and "passes through" any ClassCastException, so that it will be displayed properly in both the log and the standard error response html.

> SlingSafeMethodsServlet swallows ClassCastExceptions
> ----------------------------------------------------
>
>                 Key: SLING-921
>                 URL: https://issues.apache.org/jira/browse/SLING-921
>             Project: Sling
>          Issue Type: Improvement
>          Components: API
>            Reporter: Alexander Klimetschek
>            Priority: Minor
>
> SlingSafeMethodsServlet.service(ServletRequest req, ServletResponse res) tries to cast request & response objects to Sling's specific request & response interfaces. Therefore it catches a ClassCastException for those (seldom) cases where the servlet is erroneously used in a non-Sling environment and throws a ServletException in that case with the message "Not a Sling HTTP request/response".
> But this also swallows class-cast exceptions thrown inside custom servlets that inherit from SlingSafeMethodsServlet. The stacktrace is lost and the error message is wrong in this case.
> This can be fixed by doing an instanceof check instead of the try/catch block.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.