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