[
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)