struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (JIRA)" <>
Subject [jira] [Commented] (WW-4433) ConventionUnknownHandler change breaks exception handling in interceptors.
Date Mon, 22 Dec 2014 11:02:13 GMT


Lukasz Lenart commented on WW-4433:

[~afattahi] but fix for this issue is quite simple and it's always better to test even 2.3.20
as you can discover some other problems that won't be addressed in 2.3.21 (because you didn't
mention them ;-))

> ConventionUnknownHandler change breaks exception handling in interceptors.
> --------------------------------------------------------------------------
>                 Key: WW-4433
>                 URL:
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors, Documentation, Plugin - Convention
>    Affects Versions: 2.3.20
>            Reporter: Joseph Wolschon
>            Assignee: Lukasz Lenart
>            Priority: Minor
>             Fix For: 2.3.21
> Struts 2.3.20 appears to have caused a regression that prevents exceptions thrown from
convention-plugin actions from reaching ExceptionMappingInterceptor. This breaks exception
handling when using the convention-plugin.
> To Reproduce: 
> * Generate a project struts2-archetype-convention archetype using 2.3.20
> * Throw exception in the action. With 2.3.20, a blank page is shown.
> * Change to and you will get the standard struts2 error page.
> The breaking change appears to have been made in WW-4331. This causes error interceptor
code to break (showing a blank page when exceptions are thrown) as DefaultActionInvocation
does not catch an exception from the default UnknownHandler implementation execution, which
would previously re-throw the original exception back up for the interceptors to catch. 
> Workaround:
> We've created our own UnknownHandler implementation that just throws a new NoSuchMethodException,
allowing DefaultActionInvocation to re-throw the original exception so that our error interceptor
can again catch it.

This message was sent by Atlassian JIRA

View raw message