[ https://issues.apache.org/jira/browse/WW-5087?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17197764#comment-17197764 ]
Yasser Zamani commented on WW-5087: ----------------------------------- My pleasure :) thanks for your support! > 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.25, 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)