You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2007/09/23 20:58:41 UTC

svn commit: r578593 - /wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java

Author: ivaynberg
Date: Sun Sep 23 11:58:40 2007
New Revision: 578593

URL: http://svn.apache.org/viewvc?rev=578593&view=rev
Log:
WICKET-962: Ajax updates do not work on Components with wicket id that is not \d+ when within AbstractRepeater/RepeatingView

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?rev=578593&r1=578592&r2=578593&view=diff
==============================================================================
--- 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 Sun Sep 23 11:58:40 2007
@@ -17,6 +17,8 @@
 package org.apache.wicket.markup.repeater;
 
 import java.util.Iterator;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.markup.MarkupStream;
@@ -42,6 +44,8 @@
 
 	private static final Logger log = LoggerFactory.getLogger(AbstractRepeater.class);
 
+	private static Pattern SAFE_CHILD_ID_PATTERN = Pattern.compile("^\\d+$");
+
 	/**
 	 * Constructor
 	 * 
@@ -120,6 +124,24 @@
 	protected void onBeforeRender()
 	{
 		onPopulate();
+
+		// TODO possibly enable this only in development mode
+		Iterator i = iterator();
+		while (i.hasNext())
+		{
+			Component c = (Component)i.next();
+			Matcher matcher = SAFE_CHILD_ID_PATTERN.matcher(c.getId());
+			if (!matcher.matches())
+			{
+				log.warn("Child component of repeater " + getClass().getName() + ":" + getId() +
+						" has a non-safe child id of " + c.getId() +
+						". Safe child ids must be composed of digits only.");
+				// do not flood the log
+				break;
+			}
+
+		}
+
 		super.onBeforeRender();
 	}