Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 56f8c4ca0 -> de46d5ab9


WICKET-5660 Throw more specific exception when a component cannot be found by 
AutoLabelTextResolver


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

Branch: refs/heads/wicket-6.x
Commit: de46d5ab95274f9d19c4d372a7f405e705e48384
Parents: 56f8c4c
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Mon Aug 4 16:46:00 2014 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Mon Aug 4 16:46:00 2014 +0200

----------------------------------------------------------------------
 .../apache/wicket/markup/html/form/AutoLabelResolver.java |  3 ++-
 .../wicket/markup/html/form/AutoLabelTextResolver.java    | 10 ++++++----
 2 files changed, 8 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/de46d5ab/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
index d3f9a2e..8e0899c 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
@@ -23,6 +23,7 @@ import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.MetaDataKey;
 import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.ajax.AjaxRequestTarget;
+import org.apache.wicket.core.request.handler.ComponentNotFoundException;
 import org.apache.wicket.core.util.string.CssUtils;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
@@ -94,7 +95,7 @@ public class AutoLabelResolver implements IComponentResolver
                Component component = findRelatedComponent(container, id);
                if (component == null)
                {
-                       throw new WicketRuntimeException("Could not find form 
component with id '" + id +
+                       throw new ComponentNotFoundException("Could not find 
form component with id '" + id +
                                "' while trying to resolve wicket:for 
attribute");
                }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/de46d5ab/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
index 7d1febf..d76688e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelTextResolver.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form;
 
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
+import org.apache.wicket.core.request.handler.ComponentNotFoundException;
 import org.apache.wicket.markup.ComponentTag;
 import org.apache.wicket.markup.MarkupStream;
 import org.apache.wicket.markup.WicketTag;
@@ -229,10 +230,10 @@ public class AutoLabelTextResolver implements 
IComponentResolver
                        // We need to find a FormComponent...
                        Component related = null;
                        // ...which could be explicitly specified...
-                       if (tag.getAttribute("for") != null)
+                       String forAttributeValue = tag.getAttribute("for");
+                       if (forAttributeValue != null)
                        {
-                               Component component = 
AutoLabelResolver.findRelatedComponent(container,
-                                       tag.getAttribute("for"));
+                               Component component = 
AutoLabelResolver.findRelatedComponent(container, forAttributeValue);
                                related = component;
                        }
                        if (related == null)
@@ -255,7 +256,8 @@ public class AutoLabelTextResolver implements 
IComponentResolver
                        if (related == null)
                        {
                                // ...or it might just not be available.
-                               throw new IllegalStateException("no related 
component found for <wicket:label>");
+                               String forAttr = forAttributeValue != null ? " 
for=\"" + forAttributeValue + "\"" : "";
+                               throw new ComponentNotFoundException("no 
related component found for <wicket:label"+forAttr+">");
                        }
                        else
                        {

Reply via email to