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

ASF subversion and git services commented on WW-5065:
-----------------------------------------------------

Commit 30b43044a31e2dac6e1364cbb7388d860c4a5259 in struts's branch 
refs/heads/WW-5065-append-or-not from Lukasz Lenart
[ https://gitbox.apache.org/repos/asf?p=struts.git;h=30b4304 ]

WW-5065 Defines a new flag to control appending params


> AbstractMatcher adds values to the map passed into replaceParameters
> --------------------------------------------------------------------
>
>                 Key: WW-5065
>                 URL: https://issues.apache.org/jira/browse/WW-5065
>             Project: Struts 2
>          Issue Type: Bug
>    Affects Versions: 2.5.22
>            Reporter: Alex Kaiser
>            Priority: Minor
>             Fix For: 2.5.23, 2.6
>
>
> There is a bug with the AbstractMatcher#replaceParameters method in 
> struts/core/src/main/java/com/opensymphony/xwork2/config/impl/AbstractMatcher.java
>  (currently lines 153-170). As the function currently works it will return a 
> map that has more keys than the "orig" map that is passed into it. For 
> example, assume that I have the following config defined in my struts.xml 
> file:
> {code:java}
> <package name="test" namespace="/test">
>   <action name="{paramOne}/{paramTwo} class="org.MyActionClass" 
> method="execute">
>     <result name="success" type="stream">
>       <param name="inputName">random</param>
>     </result>
>   </action>
> </package>{code}
> If you send a request to "/test/uno/dos", this will trigger code in 
> ActionConfigMatcher (lines 95-103) that will construct the ResultConfig 
> objects to be used later on. At one point you are going to be making a call 
> to AbstractMatcher#replaceParameters with something that looks like the 
> following:
> orig:
>    "inputName" -> "random"
> vars:
>    "0" -> "uno/dos"
>    "paramOne" -> "uno"
>    "1" -> "uno"
>    "paramTwo" -> "dos"
>    "2" -> "dos"
> The result of this will be a map that looks like:
>    "inputName" -> "random"
>    "paramOne" -> "uno"
>    "paramTwo" -> "dos"
> The bug is that "paramOne" and "paramTwo" should not be in the return map.
> For the most part this but won't cause any problems but it will cause some 
> performance problems in certain situations when trying to set these 
> parameters on the results objects that aren't expecting them.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to