You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2015/02/20 22:07:54 UTC

wicket git commit: WICKET-5831 Improve unsafe Id reporting in the AbstractRepeater

Repository: wicket
Updated Branches:
  refs/heads/master 4b338b09a -> 617ee7f4b


WICKET-5831 Improve unsafe Id reporting in the AbstractRepeater

In development mode only check that the repeater's children have distinct component ids. They doesn't have to be numbers


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/617ee7f4
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/617ee7f4
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/617ee7f4

Branch: refs/heads/master
Commit: 617ee7f4b6d3fc44e290cc11d2c104e095f4088f
Parents: 4b338b0
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Fri Feb 20 22:57:16 2015 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Fri Feb 20 22:57:16 2015 +0200

----------------------------------------------------------------------
 .../wicket/markup/repeater/AbstractRepeater.java   | 17 +++++++----------
 1 file changed, 7 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/617ee7f4/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
index 9b17385..25e320a 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/AbstractRepeater.java
@@ -16,9 +16,9 @@
  */
 package org.apache.wicket.markup.repeater;
 
+import java.util.HashSet;
 import java.util.Iterator;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
+import java.util.Set;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.DequeueContext;
@@ -54,8 +54,6 @@ public abstract class AbstractRepeater extends WebMarkupContainer
 
 	private static final Logger log = LoggerFactory.getLogger(AbstractRepeater.class);
 
-	private static Pattern SAFE_CHILD_ID_PATTERN = Pattern.compile("^\\d+$");
-
 	/**
 	 * Constructor
 	 * 
@@ -127,20 +125,19 @@ public abstract class AbstractRepeater extends WebMarkupContainer
 
 		if (getApplication().usesDevelopmentConfig())
 		{
+			Set<String> usedComponentIds = new HashSet<>();
 			Iterator<? extends Component> i = iterator();
 			while (i.hasNext())
 			{
 				Component c = i.next();
-				Matcher matcher = SAFE_CHILD_ID_PATTERN.matcher(c.getId());
-				if (!matcher.matches())
+				String componentId = c.getId();
+				if (usedComponentIds.add(componentId) == false)
 				{
-					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.");
+					log.warn("Repeater '{}' has multiple children with the same component id: '{}'",
+							getPageRelativePath(), componentId);
 					// do not flood the log
 					break;
 				}
-
 			}
 		}
 		super.onBeforeRender();