struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lukasz Lenart (Jira)" <j...@apache.org>
Subject [jira] [Resolved] (WW-5087) AliasInterceptor doesn't properly handle Parameter.Empty
Date Thu, 17 Sep 2020 11:20:00 GMT

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

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

PRs got merged, thanks a lot [~yasserzamani]!!!

> AliasInterceptor doesn't properly handle Parameter.Empty
> --------------------------------------------------------
>
>                 Key: WW-5087
>                 URL: https://issues.apache.org/jira/browse/WW-5087
>             Project: Struts 2
>          Issue Type: Bug
>          Components: Core Interceptors
>    Affects Versions: 2.5.22
>            Reporter: Brian Lenz
>            Assignee: Yasser Zamani
>            Priority: Major
>             Fix For: 2.5.24, 2.6
>
>          Time Spent: 1h
>  Remaining Estimate: 0h
>
> As I reported on the mailing list, there is a bug with {{AliasInterceptor}} not handling
the {{Parameter.Empty}} that is returned from {{HttpParameters.get()}}. Since {{HttpParameters.get()}} always
returns a non-null value, the {{Evaluated}} object is treated as always being defined, which
results in the empty value being set incorrectly on the stack.
> The bug was originally introduced here:
> https://github.com/apache/struts/commit/787f2f96eb9f1bb3c8012ab42aa222ae6286a91a#diff-b7b7c87c1012088e79dcc5a7bd9e8127R168
> The fix is easy; this code:
> {code:java}
> // workaround
> HttpParameters contextParameters = ActionContext.getContext().getParameters();
> if (null != contextParameters) {
>     value = new Evaluated(contextParameters.get(name));
> }{code}
> needs to be updated to:
> {code:java}
> // workaround
> HttpParameters contextParameters = ActionContext.getContext().getParameters();
> if (null != contextParameters) {
>     Parameter param = contextParameters.get(name);
>     value = new Evaluated(param.isDefined() ? param : null);
> } {code}
> This way, it ensures the {{Evaluated}} value is only defined when appropriate.
>  



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

Mime
View raw message