struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jim deVos (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (WW-4618) MessageStorePreResultListener doesn't store messages for 3rd-party RedirectResult subclasses
Date Fri, 25 Mar 2016 00:43:25 GMT

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

Jim deVos commented on WW-4618:
-------------------------------

Sorry, I should have been more specific. Essentially are "workaround" amounted to reverting
to using ServletRedirectResult instead of our custom subclass.

After reviewing our action classes, we determined that only a handful of the actions that
use action messages  get called via a redirect.  And of those few actions,  none of them relied
upon the extra functionality of our custom RedirectResult subclass.  So we simply changed
the result-type definition in struts.xml from "redirect" to "tdar-redirect", and updated our
mappings so that the aforementioned actions used  "redirect" results, and the rest used "tdar-redirect".




> MessageStorePreResultListener doesn't store messages for 3rd-party RedirectResult subclasses

> ---------------------------------------------------------------------------------------------
>
>                 Key: WW-4618
>                 URL: https://issues.apache.org/jira/browse/WW-4618
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.3.28
>            Reporter: Jim deVos
>             Fix For: 2.3.29
>
>
> My team uses a custom subclass of ServletRedirectResult, e.g. "org.tdar.struts.ServletRedirectResult".
After updating to 2.3.8 our messages no longer survive a redirect.  I believe the problem
lies with this section of [MessageStorePreResultListener|https://git-wip-us.apache.org/repos/asf?p=struts.git;a=blob;f=core/src/main/java/org/apache/struts2/interceptor/MessageStorePreResultListener.java;h=60fcffe2116f16503ba6540ff9f69b25dac173f1;hb=8852618]:

> {code}
> if (resultConfig != null) {
>     isRedirect = ServletRedirectResult.class.getName().equals(resultConfig.getClassName())
>             || ServletActionRedirectResult.class.getName().equals(resultConfig.getClassName());
> }
> {code}
> Per the discussion in WW-4605,  the following change could likely resolve the issue:
> {code}
> if (resultConfig != null) {
>     isRedirect = ServletRedirectResult.class.isAssignableFrom(Class.forName(resultConfig.getClassName()));
> }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message