struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF subversion and git services (Jira)" <j...@apache.org>
Subject [jira] [Commented] (WW-5087) AliasInterceptor doesn't properly handle Parameter.Empty
Date Tue, 15 Sep 2020 05:49:00 GMT

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

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

Commit 828d02fcbd6cf6a7c905e9b8ed507c3c1ffd1243 in struts's branch refs/heads/struts-2-5-x
from Lukasz Lenart
[ https://gitbox.apache.org/repos/asf?p=struts.git;h=828d02f ]

Merge pull request #438 from yasserzamani/WW-5087

WW-5087 handle Parameter.Empty properly

> 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: 0.5h
>  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