Brian Lenz created WW-5087:
------------------------------
Summary: 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
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 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)
|