[
https://issues.apache.org/jira/browse/WW-3010?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Lukasz Lenart updated WW-3010:
------------------------------
Description:
When using the struts2 taglib's iterator tag to iterate over a collection which
contains nulls, the current value ("id") is not set to null, but to the value
it had in the last iteration before. This behaviour is explicitly coded without
any obvious reason. See IteratorComponent.java from line 219:
{code:java}
if ((id != null) && (currentValue != null)) {
//pageContext.setAttribute(id, currentValue);
//pageContext.setAttribute(id, currentValue,
PageContext.REQUEST_SCOPE);
stack.getContext().put(id, currentValue);
}
{code}
Expected behaviour: just iterate over the null values as a plain java iterator
would.
If nulls are forbidden for some important reason, it should throw an execption,
but not return a wrong value.
was:
When using the struts2 taglib's iterator tag to iterate over a collection which
contains nulls, the current value ("id") is not set to null, but to the value
it had in the last iteration before. This behaviour is explicitly coded without
any obvious reason. See IteratorComponent.java from line 219:
if ((id != null) && (currentValue != null)) {
//pageContext.setAttribute(id, currentValue);
//pageContext.setAttribute(id, currentValue,
PageContext.REQUEST_SCOPE);
stack.getContext().put(id, currentValue);
}
Expected behaviour: just iterate over the null values as a plain java iterator
would.
If nulls are forbidden for some important reason, it should throw an execption,
but not return a wrong value.
> s:iterator fails to iterate over collections containing null
> ------------------------------------------------------------
>
> Key: WW-3010
> URL: https://issues.apache.org/jira/browse/WW-3010
> Project: Struts 2
> Issue Type: Bug
> Affects Versions: 2.0.14
> Environment: any
> Reporter: Daniel Baldes
> Fix For: 2.5
>
>
> When using the struts2 taglib's iterator tag to iterate over a collection
> which contains nulls, the current value ("id") is not set to null, but to the
> value it had in the last iteration before. This behaviour is explicitly coded
> without any obvious reason. See IteratorComponent.java from line 219:
> {code:java}
> if ((id != null) && (currentValue != null)) {
> //pageContext.setAttribute(id, currentValue);
> //pageContext.setAttribute(id, currentValue,
> PageContext.REQUEST_SCOPE);
> stack.getContext().put(id, currentValue);
> }
> {code}
> Expected behaviour: just iterate over the null values as a plain java
> iterator would.
> If nulls are forbidden for some important reason, it should throw an
> execption, but not return a wrong value.
--
This message was sent by Atlassian JIRA
(v6.2#6252)