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

James Holmes updated WW-2909:
-----------------------------

    Fix Version/s: 2.1.3

> Params will not always set all parameters in @Result annotation
> ---------------------------------------------------------------
>
>                 Key: WW-2909
>                 URL: https://issues.apache.org/struts/browse/WW-2909
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.1.3
>            Reporter: Todd Perry
>             Fix For: 2.1.3
>
>
> I have a custom result that implement Result with two setters for 'feedTitle' 
> and 'feedDescription'.  When using the @Result annotation:
> @Result(name = "feed", type = FeedResult.class, value = "feed",
>         params = { "feedTitle", "testTitle",
>                         "feedDescription", "testDescription" }
> )
> The feedTitle is set but not feedDescription.  The problem is in 
> com.opensymphony.xwork2.ObjectFactory, buildResult, which calls 
> OgnlReflectionProvider.setProperties with the map of properties... the map 
> has this content:
> {feedTitle=testTitle, location=feed, feedDescription=testDescription}
> Struts appears to have added 'location' to the parameters when building the 
> map.  Since my Result does not have this property it throws an exception 
> which is handled silently in buildResult but it does not set the remaining 
> properties in the map (feedDescription).
> See my comment on WW-2297 (sorry I did not realize it was closed when I added 
> this) showing that this also prevents properties like 'actionName' from being 
> set under certain circumstances, which means WW-2297 does not seem to be 
> fully fixed.  The map order seems to be arbitrary (I assume it's backed by a 
> hash map) so it is not possible to make sure the Result properties appear 
> first to prevent the exception from interfering.  So this problem also 
> prevents me from using @Result to place arbitrary parameters on the value 
> stack, which it appears to be meant for as well.
> A workaround for this is that I can add a 'setLocation' to my result to 
> handle the location property.. but it does not solve the situation in WW-2297 
> when trying to pass parameters to an internal result type like 
> ServletActionRedirectResult.

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

Reply via email to