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
                {


Reply via email to