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

Lukasz Lenart resolved WW-5096.
-------------------------------
    Resolution: Fixed

PRs got merged!

> Struts2 StaticParametersInterceptor's addParametersToContext method is not 
> working as expected.
> -----------------------------------------------------------------------------------------------
>
>                 Key: WW-5096
>                 URL: https://issues.apache.org/jira/browse/WW-5096
>             Project: Struts 2
>          Issue Type: Bug
>            Reporter: Akash Shah
>            Priority: Minor
>             Fix For: 2.5.26, 2.6
>
>          Time Spent: 3h 20m
>  Remaining Estimate: 0h
>
> In our current project we are upgrading struts 2.3.35 to 2.5.22 and we 
> encounter some minor bug in below code of addParametersToContext method of 
> StaticParametersInterceptor.
> in method, code is like below.
>  
> {code:java}
> if (overwrite) {
>             if (previousParams != null) {
>                 combinedParams = combinedParams.withParent(previousParams);
>             }
>             if (newParams != null) {
>                 combinedParams = combinedParams.withExtraParams(newParams);
>             }
>         } else {
>             if (newParams != null) {
>                 combinedParams = combinedParams.withExtraParams(newParams);
>             }
>             if (previousParams != null) {
>                 combinedParams = combinedParams.withParent(previousParams);
>             }
>         }
> {code}
>  
> But here overwrite functionality will not work since only if condition order 
> was changed in else condition of overwrite.
> instead of this, as per me, code would be like below
> {code:java}
> if (overwrite) {
>             if (previousParams != null) {
>                 combinedParams = combinedParams.withParent(previousParams);
>             }
>             if (newParams != null) {
>                 combinedParams = combinedParams.withExtraParams(newParams);
>             }
>         } else {
>             if (newParams != null) {  
>              HttpParameters newHttpParameters = 
> HttpParameters.create(newParams).build();
>                 combinedParams = combinedParams.withParent(newParams);
>             }
>             if (previousParams != null) {
>                 combinedParams = 
> combinedParams.withExtraParams(previousParams);
>             }
>         }
> {code}
>  
> And that's how ac.setParameters(combinedParams.build()); will work because in 
> build method, requestParameterMap will override parent parameters.
>  



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

Reply via email to