[
https://issues.apache.org/jira/browse/WW-5065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17098404#comment-17098404
]
ASF subversion and git services commented on WW-5065:
-----------------------------------------------------
Commit 40c60da5a055f1d000d991abac64b3eb25a44c54 in struts's branch
refs/heads/master from Lukasz Lenart
[ https://gitbox.apache.org/repos/asf?p=struts.git;h=40c60da ]
WW-5065 Cleans up code and marks old constructor as deprecated
> 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
>
> Time Spent: 1.5h
> Remaining Estimate: 0h
>
> 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)