XSLT cannot render a collection that contains a null value.
-----------------------------------------------------------
Key: WW-3158
URL: https://issues.apache.org/struts/browse/WW-3158
Project: Struts 2
Issue Type: Bug
Components: Other
Affects Versions: 2.1.6
Environment: NA
Reporter: Steve Wolke
For example a action class
public class TestListNullEntry implements Action{
private List testList = new ArrayList();
public String execute() throws Exception {
testList.add("entry1");
testList.add(null);
testList.add("entry3");
return this.SUCCESS;
}
public List getTestList() {
return testList;
}
}
This action is unable to render a xslt result because of the null entry.
Code changes to fix this problem.
Index:
C:/apache/struts/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
===================================================================
--- AdapterFactory.java (revision 651946)
+++ AdapterFactory.java (working copy)
- public Node adaptNullValue(BeanAdapter parent, String propertyName) {
+ public Node adaptNullValue(AdapterNode parent, String propertyName) {
return new StringAdapter(this, parent, propertyName, "null");
}
Also changes needed in
Index:
C:/apache/struts/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
===================================================================
--- CollectionAdapter.java (revision 651946)
+++ CollectionAdapter.java (working copy)
for (Object value : values) {
- Node childAdapter = getAdapterFactory().adaptNode(this, "item",
value);
+ Node childAdapter;
+ if (value == null) {
+ childAdapter = getAdapterFactory().adaptNullValue(this, "item");
+ } else {
+ childAdapter = getAdapterFactory().adaptNode(this, "item",
value);
+ }
if (childAdapter != null)
children.add(childAdapter);
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.