Author: musachy
Date: Wed Aug 12 16:37:46 2009
New Revision: 803589
URL: http://svn.apache.org/viewvc?rev=803589&view=rev
Log:
WW-3158 XSLT cannot render a collection that contains a null value.
thanks to Steve Wolke for the patch
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java?rev=803589&r1=803588&r2=803589&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/AdapterFactory.java
Wed Aug 12 16:37:46 2009
@@ -229,7 +229,7 @@
* @param parent
* @param propertyName
*/
- public Node adaptNullValue(BeanAdapter parent, String propertyName) {
+ public Node adaptNullValue(AdapterNode parent, String propertyName) {
return new StringAdapter(this, parent, propertyName, "null");
}
Modified:
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java?rev=803589&r1=803588&r2=803589&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
(original)
+++
struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/xslt/CollectionAdapter.java
Wed Aug 12 16:37:46 2009
@@ -48,7 +48,12 @@
List<Node> children = new ArrayList<Node>(values.size());
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);
Modified:
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
URL:
http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java?rev=803589&r1=803588&r2=803589&view=diff
==============================================================================
---
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
(original)
+++
struts/struts2/trunk/core/src/test/java/org/apache/struts2/views/xslt/XSLTResultTest.java
Wed Aug 12 16:37:46 2009
@@ -248,6 +248,7 @@
public List getBooks() {
List list = new ArrayList();
list.add(new Book("WebWork in Action", "Patrick and Jason"));
+ list.add(null);
list.add(new Book("XWork not in Action", "Superman"));
return list;
}