[ https://issues.apache.org/jira/browse/WW-5065?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17092803#comment-17092803 ]
ASF subversion and git services commented on WW-5065: ----------------------------------------------------- Commit e32bd7dba9477496c4a7b3ce3c30630bf0a3bc3b in struts's branch refs/heads/struts-2-5-x from Lukasz Lenart [ https://gitbox.apache.org/repos/asf?p=struts.git;h=e32bd7d ] Merge pull request #405 from apache/WW-5065-append-or-not [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 > > Time Spent: 10m > 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)