Author: ehillenius
Date: Wed Aug 1 14:39:48 2007
New Revision: 561964
URL: http://svn.apache.org/viewvc?view=rev&rev=561964
Log:
WICKET-808
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java?view=diff&rev=561964&r1=561963&r2=561964
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
Wed Aug 1 14:39:48 2007
@@ -22,6 +22,8 @@
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.model.IModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Base class for repeaters. This container renders each of its children using
@@ -39,6 +41,8 @@
{
private static final long serialVersionUID = 1L;
+ private static final Logger log =
LoggerFactory.getLogger(AbstractRepeater.class);
+
/**
* Constructor
*
@@ -81,12 +85,42 @@
Iterator it = renderIterator();
if (it.hasNext())
{
+ boolean atLeastOneChildRendered = false;
do
{
- markupStream.setCurrentIndex(markupStart);
- renderChild((Component)it.next());
+ Component child = (Component)it.next();
+ if (child != null)
+ {
+
markupStream.setCurrentIndex(markupStart);
+ renderChild(child);
+ atLeastOneChildRendered = true;
+ }
+ else
+ {
+ if (log.isWarnEnabled())
+ {
+ StringBuffer b = new
StringBuffer(
+ "Encountered a
null element in the repeater model. Model: [");
+ for (Iterator i =
renderIterator(); i.hasNext();)
+ {
+ Object o = i.next();
+ b.append(o != null ? o
: "<NULL>");
+ if (i.hasNext())
+ {
+ b.append(", ");
+ }
+ }
+ b.append("]. Please make sure
you don't provide NULL elements");
+ log.warn(b.toString());
+ }
+ }
}
while (it.hasNext());
+
+ if (!atLeastOneChildRendered)
+ {
+ markupStream.skipComponent();
+ }
}
else
{