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();
}