Author: ivaynberg
Date: Wed Jul 18 13:06:10 2007
New Revision: 557375

URL: http://svn.apache.org/viewvc?view=rev&rev=557375
Log:
WICKET-766 allow pragmatic markup id override

Modified:
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
    
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java?view=diff&rev=557375&r1=557374&r2=557375
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Component.java
 Wed Jul 18 13:06:10 2007
@@ -461,8 +461,8 @@
                 */
                public String toString()
                {
-                       return "VisibilityChange[component: " + 
component.getPath() + ", visible: " + visible
-                                       + "]";
+                       return "VisibilityChange[component: " + 
component.getPath() + ", visible: " + visible +
+                                       "]";
                }
 
                /**
@@ -680,8 +680,8 @@
        private ArrayList behaviors = null;
 
        /** Component flags. See FLAG_* for possible non-exclusive flag values. 
*/
-       private int flags = FLAG_VISIBLE | FLAG_ESCAPE_MODEL_STRINGS | 
FLAG_VERSIONED | FLAG_ENABLED
-                       | FLAG_IS_RENDER_ALLOWED;
+       private int flags = FLAG_VISIBLE | FLAG_ESCAPE_MODEL_STRINGS | 
FLAG_VERSIONED | FLAG_ENABLED |
+                       FLAG_IS_RENDER_ALLOWED;
 
        /** Component id. */
        private String id;
@@ -808,11 +808,10 @@
                        
getApplication().notifyComponentOnAfterRenderListeners(this);
                        if (getFlag(FLAG_AFTER_RENDERING))
                        {
-                               throw new IllegalStateException(
-                                               Component.class.getName()
-                                                               + " has not 
been properly detached. Something in the hierarchy of "
-                                                               + 
getClass().getName()
-                                                               + " has not 
called super.onAfterRender() in the override of onAfterRender() method");
+                               throw new 
IllegalStateException(Component.class.getName() +
+                                               " has not been properly 
detached. Something in the hierarchy of " +
+                                               getClass().getName() +
+                                               " has not called 
super.onAfterRender() in the override of onAfterRender() method");
                        }
                        // always detach children because components can be 
attached
                        // independently of their parents
@@ -847,11 +846,10 @@
                        
getApplication().notifyComponentOnBeforeRenderListeners(this);
                        if (!getFlag(FLAG_BEFORE_RENDERING_SUPER_CALL_VERIFIED))
                        {
-                               throw new IllegalStateException(
-                                               Component.class.getName()
-                                                               + " has not 
been properly rendered. Something in the hierarchy of "
-                                                               + 
getClass().getName()
-                                                               + " has not 
called super.onBeforeRender() in the override of onBeforeRender() method");
+                               throw new 
IllegalStateException(Component.class.getName() +
+                                               " has not been properly 
rendered. Something in the hierarchy of " +
+                                               getClass().getName() +
+                                               " has not called 
super.onBeforeRender() in the override of onBeforeRender() method");
                        }
                        onBeforeRenderChildren();
                        setFlag(FLAG_RENDERING, true);
@@ -893,10 +891,10 @@
                onDetach();
                if (getFlag(FLAG_DETACHING))
                {
-                       throw new 
IllegalStateException(Component.class.getName()
-                                       + " has not been properly detached. 
Something in the hierarchy of "
-                                       + getClass().getName()
-                                       + " has not called super.onDetach() in 
the override of onDetach() method");
+                       throw new 
IllegalStateException(Component.class.getName() +
+                                       " has not been properly detached. 
Something in the hierarchy of " +
+                                       getClass().getName() +
+                                       " has not called super.onDetach() in 
the override of onDetach() method");
                }
                setFlag(FLAG_ATTACHED, false);
 
@@ -1181,13 +1179,13 @@
 
        /**
         * Retrieves id by which this component is represented within the 
markup.
-        * This is either the id attribute if it is set explicitly in the 
markup, or
-        * a generated id.
+        * This is either the id attribute set explicitly via a call to
+        * [EMAIL PROTECTED] #setMarkupId(String)}, id attribute defined in the 
markup, or an
+        * automatically generated id - in that order.
         * <p>
-        * The point of this function is to generate a unique id to make it 
easy to
-        * locate this component in the generated markup for post-wicket 
processing
-        * such as javascript or an xslt transform in case no explicit id was 
set
-        * yet.
+        * If no explicit id is set this function will generate an id value that
+        * will be unique in the page. This is the preferred way as there is no
+        * chance of id collision.
         * <p>
         * Note: This method should only be called after the component or its 
parent
         * have been added to the page.
@@ -1219,11 +1217,39 @@
                        markupId = getId() + page.getAutoIndex();
                        // }
                        setMetaData(MARKUP_ID_KEY, markupId);
+
                }
                return markupId;
        }
 
        /**
+        * Sets this component's markup id to a user defined value. It is up to 
the
+        * user to ensure this value is unique.
+        * <p>
+        * The recommended way is to let wicket generate the value 
automatically,
+        * this method is here to serve as an override for that value in cases 
where
+        * a specific id must be used.
+        * <p>
+        * If null is passed in the user defined value is cleared and markup id
+        * value will fall back on automatically generated value
+        * 
+        * @see #getMarkupId()
+        * 
+        * @param markupId
+        *            markup id value or null to clear any previous user defined
+        *            value
+        */
+       public void setMarkupId(String markupId)
+       {
+               if (markupId != null && Strings.isEmpty(markupId))
+               {
+                       throw new IllegalArgumentException("Markup id cannot be 
an empty string");
+               }
+               setMetaData(MARKUP_ID_KEY, markupId);
+
+       }
+
+       /**
         * Gets metadata for this component using the given key.
         * 
         * @param key
@@ -1866,8 +1892,8 @@
                if (behaviors == null || !behaviors.contains(behavior))
                {
                        throw new IllegalStateException(
-                                       "Tried to remove a behavior that was 
not added to the component. Behavior: "
-                                                       + behavior.toString());
+                                       "Tried to remove a behavior that was 
not added to the component. Behavior: " +
+                                                       behavior.toString());
                }
 
                if (!behavior.isTemporary())
@@ -2089,8 +2115,8 @@
                {
                        // We were something other than <tag> or <tag/>
                        markupStream
-                                       .throwMarkupException("Method 
renderComponent called on bad markup element: "
-                                                       + tag);
+                                       .throwMarkupException("Method 
renderComponent called on bad markup element: " +
+                                                       tag);
                }
 
                if (tag.isOpenClose() && openTag.isOpen())
@@ -2130,7 +2156,8 @@
                                        // rendered.
                                        if (getRenderBodyOnly() == false)
                                        {
-                                               final boolean stripWicketTags = 
Application.get().getMarkupSettings().getStripWicketTags();
+                                               final boolean stripWicketTags = 
Application.get().getMarkupSettings()
+                                                               
.getStripWicketTags();
                                                if (!(openTag instanceof 
WicketTag) || !stripWicketTags)
                                                {
                                                        // Close the manually 
opened panel tag.
@@ -2224,8 +2251,8 @@
                if (!getId().equals(replacement.getId()))
                {
                        throw new IllegalArgumentException(
-                                       "Replacement component must have the 
same id as the component it will replace. Replacement id [["
-                                                       + replacement.getId() + 
"]], replaced id [[" + getId() + "]].");
+                                       "Replacement component must have the 
same id as the component it will replace. Replacement id [[" +
+                                                       replacement.getId() + 
"]], replaced id [[" + getId() + "]].");
                }
                if (parent == null)
                {
@@ -2407,8 +2434,8 @@
                if (model == null)
                {
                        throw new IllegalStateException(
-                                       "Attempt to set model object on null 
model of component: "
-                                                       + 
getPageRelativePath());
+                                       "Attempt to set model object on null 
model of component: " +
+                                                       getPageRelativePath());
                }
 
                // Check authorization
@@ -2837,8 +2864,8 @@
                if (!tag.getName().equalsIgnoreCase(name))
                {
                        findMarkupStream().throwMarkupException(
-                                       "Component " + getId() + " must be 
applied to a tag of type '" + name
-                                                       + "', not " + 
tag.toUserDebugString());
+                                       "Component " + getId() + " must be 
applied to a tag of type '" + name +
+                                                       "', not " + 
tag.toUserDebugString());
                }
        }
 
@@ -2863,9 +2890,9 @@
                        if (tagAttributeValue == null || 
!value.equalsIgnoreCase(tagAttributeValue))
                        {
                                findMarkupStream().throwMarkupException(
-                                               "Component " + getId() + " must 
be applied to a tag with '" + key
-                                                               + "' attribute 
matching '" + value + "', not '" + tagAttributeValue
-                                                               + "'");
+                                               "Component " + getId() + " must 
be applied to a tag with '" + key +
+                                                               "' attribute 
matching '" + value + "', not '" + tagAttributeValue +
+                                                               "'");
                        }
                }
        }
@@ -2903,7 +2930,8 @@
                {
                        model.detach();
                }
-               // also detach the wrapped model of a component assignet wrap 
(not inherited)
+               // also detach the wrapped model of a component assignet wrap 
(not
+               // inherited)
                if (model instanceof IWrapModel && 
!getFlag(FLAG_INHERITABLE_MODEL))
                {
                        ((IWrapModel)model).getWrappedModel().detach();
@@ -2934,8 +2962,8 @@
        {
                if (parent == null)
                {
-                       throw new IllegalStateException("Cannot find 
markupstream for " + this
-                                       + " as there is no parent");
+                       throw new IllegalStateException("Cannot find 
markupstream for " + this +
+                                       " as there is no parent");
                }
 
                return parent.findMarkupStream();
@@ -3152,8 +3180,8 @@
        protected boolean isBehaviorAccepted(final IBehavior behavior)
        {
                // Ignore AttributeModifiers when 
FLAG_IGNORE_ATTRIBUTE_MODIFIER is set
-               if ((behavior instanceof AttributeModifier)
-                               && (getFlag(FLAG_IGNORE_ATTRIBUTE_MODIFIER) != 
false))
+               if ((behavior instanceof AttributeModifier) &&
+                               (getFlag(FLAG_IGNORE_ATTRIBUTE_MODIFIER) != 
false))
                {
                        return false;
                }
@@ -3310,8 +3338,8 @@
                if (!(tag instanceof WicketTag) || !stripWicketTags)
                {
                        // Apply behavior modifiers
-                       if ((behaviors != null) && !behaviors.isEmpty() && 
!tag.isClose()
-                                       && (isIgnoreAttributeModifier() == 
false))
+                       if ((behaviors != null) && !behaviors.isEmpty() && 
!tag.isClose() &&
+                                       (isIgnoreAttributeModifier() == false))
                        {
                                tag = tag.mutable();
 
@@ -3393,9 +3421,9 @@
                        if ((markupOpenTag != null) && markupOpenTag.isOpen() 
&& !markupStream.atCloseTag())
                        {
                                // There must be a component in this discarded 
body
-                               markupStream.throwMarkupException("Expected 
close tag for '" + markupOpenTag
-                                               + "' Possible attempt to embed 
component(s) '" + markupStream.get()
-                                               + "' in the body of this 
component which discards its body");
+                               markupStream.throwMarkupException("Expected 
close tag for '" + markupOpenTag +
+                                               "' Possible attempt to embed 
component(s) '" + markupStream.get() +
+                                               "' in the body of this 
component which discards its body");
                        }
                }
        }
@@ -3511,10 +3539,16 @@
                        return this;
                }
                throw new IllegalArgumentException(
-                               exceptionMessage("Component is not a container 
and so does "
-                                               + "not contain the path " + 
path));
+                               exceptionMessage("Component is not a container 
and so does " +
+                                               "not contain the path " + 
path));
        }
 
+       /**
+        * Checks whether or not this component has a markup id value generated,
+        * whether it is automatic or user defined
+        * 
+        * @return true if this component has a markup id value generated
+        */
        final boolean hasMarkupIdMetaData()
        {
                return getMetaData(MARKUP_ID_KEY) != null;
@@ -3538,12 +3572,12 @@
                        if (!getFlag(FLAG_ATTACH_SUPER_CALL_VERIFIED))
                        {
                                throw new IllegalStateException(
-                                               "Component "
-                                                               + this
-                                                               + " of type "
-                                                               + 
getClass().getName()
-                                                               + " has not 
been properly attached.  "
-                                                               + "Something in 
its class hierarchy has failed to call super.onAttach() in an override of 
onAttach() method");
+                                               "Component " +
+                                                               this +
+                                                               " of type " +
+                                                               
getClass().getName() +
+                                                               " has not been 
properly attached.  " +
+                                                               "Something in 
its class hierarchy has failed to call super.onAttach() in an override of 
onAttach() method");
                        }
                        setFlag(FLAG_ATTACHING, false);
                        setFlag(FLAG_ATTACHED, true);
@@ -3642,11 +3676,6 @@
                        throw new WicketRuntimeException("Null component id is 
not allowed.");
                }
                this.id = id;
-       }
-
-       final void setMarkupIdMetaData(String markupId)
-       {
-               setMetaData(MARKUP_ID_KEY, markupId);
        }
 
        /**

Modified: 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
URL: 
http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?view=diff&rev=557375&r1=557374&r2=557375
==============================================================================
--- 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
 (original)
+++ 
incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/MarkupContainer.java
 Wed Jul 18 13:06:10 2007
@@ -136,7 +136,7 @@
        public final MarkupContainer add(final Component child)
        {
                checkHierarchyChange(child);
-               
+
                if (child == null)
                {
                        throw new IllegalArgumentException("argument child may 
not be null");
@@ -151,8 +151,8 @@
                addedComponent(child);
                if (put(child) != null)
                {
-                       throw new IllegalArgumentException(exceptionMessage("A 
child with id '" + child.getId()
-                                       + "' already exists"));
+                       throw new IllegalArgumentException(exceptionMessage("A 
child with id '" +
+                                       child.getId() + "' already exists"));
                }
 
                return this;
@@ -169,7 +169,7 @@
        public final MarkupContainer addOrReplace(final Component child)
        {
                checkHierarchyChange(child);
-               
+
                if (child == null)
                {
                        throw new IllegalArgumentException("argument child must 
be not null");
@@ -204,8 +204,8 @@
         * @param component
         *            The component to add
         * @param markupStream
-        *            Null, if the parent container is able to provide the 
markup. 
-        *            Else the markup stream to be used to render the 
component. 
+        *            Null, if the parent container is able to provide the 
markup.
+        *            Else the markup stream to be used to render the component.
         * @return True, if component has been added
         */
        public final boolean autoAdd(final Component component, final 
MarkupStream markupStream)
@@ -233,20 +233,21 @@
                }
                return true;
        }
-       
+
        /**
         * 
         * @param component
         *            The component to add
         * @return True, if component has been added
         * 
-        * @deprecated since 1.3 Please use [EMAIL PROTECTED] 
#autoAdd(Component, MarkupStream)} instead
+        * @deprecated since 1.3 Please use
+        *             [EMAIL PROTECTED] #autoAdd(Component, MarkupStream)} 
instead
         */
        public final boolean autoAdd(final Component component)
        {
                return autoAdd(component, null);
        }
-       
+
        /**
         * @param component
         *            The component to check
@@ -351,7 +352,8 @@
        {
                try
                {
-                       return 
getApplication().getMarkupSettings().getMarkupCache().getMarkupStream(this, 
false, throwException);
+                       return 
getApplication().getMarkupSettings().getMarkupCache().getMarkupStream(this,
+                                       false, throwException);
                }
                catch (MarkupException ex)
                {
@@ -363,12 +365,9 @@
                {
                        // throw exception since there is no associated markup
                        throw new MarkupNotFoundException(
-                                       exceptionMessage("Markup of type '"
-                                                       + getMarkupType()
-                                                       + "' for component '"
-                                                       + getClass().getName()
-                                                       + "' not found."
-                                                       + " Enable debug 
messages for org.apache.wicket.util.resource to get a list of all filenames 
tried"),
+                                       exceptionMessage("Markup of type '" + 
getMarkupType() + "' for component '" +
+                                                       getClass().getName() + 
"' not found." +
+                                                       " Enable debug messages 
for org.apache.wicket.util.resource to get a list of all filenames tried"),
                                        ex);
                }
        }
@@ -520,7 +519,7 @@
        public void remove(final Component component)
        {
                checkHierarchyChange(component);
-               
+
                if (component == null)
                {
                        throw new IllegalArgumentException("argument component 
may not be null");
@@ -550,8 +549,8 @@
                }
                else
                {
-                       throw new WicketRuntimeException("Unable to find a 
component with id '" + id
-                                       + "' to remove");
+                       throw new WicketRuntimeException("Unable to find a 
component with id '" + id +
+                                       "' to remove");
                }
        }
 
@@ -573,8 +572,8 @@
 
                                public String toString()
                                {
-                                       return "RemoveAllChange[component: " + 
getPath() + ", removed Children: "
-                                                       + removedChildren + "]";
+                                       return "RemoveAllChange[component: " + 
getPath() + ", removed Children: " +
+                                                       removedChildren + "]";
                                }
 
                                public void undo()
@@ -641,23 +640,23 @@
                        setIgnoreAttributeModifier(true);
                        renderComponentTag(associatedMarkupOpenTag);
                        associatedMarkupStream.next();
-                       
-                       if 
(getApplication().getDebugSettings().isOutputMarkupContainerClassName()) 
+
+                       if 
(getApplication().getDebugSettings().isOutputMarkupContainerClassName())
                        {
                                getResponse().write("<!-- MARKUP FOR ");
                                getResponse().write(getClass().getName());
                                getResponse().write(" BEGIN -->");
                        }
-                               
+
                        renderComponentTagBody(associatedMarkupStream, 
associatedMarkupOpenTag);
-                       
+
                        if 
(getApplication().getDebugSettings().isOutputMarkupContainerClassName())
                        {
                                getResponse().write("<!-- MARKUP FOR ");
                                getResponse().write(getClass().getName());
                                getResponse().write(" END -->");
                        }
-                               
+
                        renderClosingComponentTag(associatedMarkupStream, 
associatedMarkupOpenTag, false);
                        setMarkupStream(originalMarkupStream);
                }
@@ -679,7 +678,7 @@
        public final MarkupContainer replace(final Component child)
        {
                checkHierarchyChange(child);
-               
+
                if (child == null)
                {
                        throw new IllegalArgumentException("argument child must 
be not null");
@@ -699,13 +698,13 @@
                        if (replaced == null)
                        {
                                throw new WicketRuntimeException(
-                                               exceptionMessage("Cannot 
replace a component which has not been added: id='"
-                                                               + child.getId() 
+ "', component=" + child));
+                                               exceptionMessage("Cannot 
replace a component which has not been added: id='" +
+                                                               child.getId() + 
"', component=" + child));
                        }
 
                        // first remove the component.
                        removedComponent(replaced);
-                       
+
                        // then add the other one.
                        addedComponent(child);
 
@@ -714,7 +713,7 @@
 
                        // The generated markup id remains the same
                        String replacedId = (replaced.hasMarkupIdMetaData()) ? 
replaced.getMarkupId() : null;
-                       child.setMarkupIdMetaData(replacedId);
+                       child.setMarkupId(replacedId);
                }
 
                return this;
@@ -843,23 +842,23 @@
                                value = visitor.component(child);
 
                                // If visitor returns a non-null value, it 
halts the traversal
-                               if ((value != IVisitor.CONTINUE_TRAVERSAL)
-                                               && (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
+                               if ((value != IVisitor.CONTINUE_TRAVERSAL) &&
+                                               (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
                                {
                                        return value;
                                }
                        }
 
                        // If child is a container
-                       if ((child instanceof MarkupContainer)
-                                       && (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
+                       if ((child instanceof MarkupContainer) &&
+                                       (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
                        {
                                // visit the children in the container
                                value = 
((MarkupContainer)child).visitChildren(clazz, visitor);
 
                                // If visitor returns a non-null value, it 
halts the traversal
-                               if ((value != IVisitor.CONTINUE_TRAVERSAL)
-                                               && (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
+                               if ((value != IVisitor.CONTINUE_TRAVERSAL) &&
+                                               (value != 
IVisitor.CONTINUE_TRAVERSAL_BUT_DONT_GO_DEEPER))
                                {
                                        return value;
                                }
@@ -1236,8 +1235,8 @@
                                {
                                        if (((WicketTag)tag).isChildTag())
                                        {
-                                               
markupStream.throwMarkupException("Found " + tag.toString()
-                                                               + " but no 
<wicket:extend>");
+                                               
markupStream.throwMarkupException("Found " + tag.toString() +
+                                                               " but no 
<wicket:extend>");
                                        }
                                        else
                                        {
@@ -1246,10 +1245,10 @@
                                }
 
                                // No one was able to handle the component id
-                               markupStream.throwMarkupException("Unable to 
find component with id '" + id
-                                               + "' in " + this + ". This 
means that you declared wicket:id=" + id
-                                               + " in your markup, but that 
you either did not add the "
-                                               + "component to your page at 
all, or that the hierarchy does not match.");
+                               markupStream.throwMarkupException("Unable to 
find component with id '" + id +
+                                               "' in " + this + ". This means 
that you declared wicket:id=" + id +
+                                               " in your markup, but that you 
either did not add the " +
+                                               "component to your page at all, 
or that the hierarchy does not match.");
                        }
                }
                else
@@ -1334,8 +1333,8 @@
                        renderNext(markupStream);
                        if (index == markupStream.getCurrentIndex())
                        {
-                               markupStream.throwMarkupException("Component at 
markup stream index " + index
-                                               + " failed to advance the 
markup stream");
+                               markupStream.throwMarkupException("Component at 
markup stream index " + index +
+                                               " failed to advance the markup 
stream");
                        }
                }
        }
@@ -1372,8 +1371,8 @@
                                renderNext(markupStream);
                                if (index == markupStream.getCurrentIndex())
                                {
-                                       
markupStream.throwMarkupException("Markup element at index " + index
-                                                       + " failed to advance 
the markup stream");
+                                       
markupStream.throwMarkupException("Markup element at index " + index +
+                                                       " failed to advance the 
markup stream");
                                }
                        }
                }
@@ -1407,10 +1406,15 @@
                        onAttach();
                        if (!getFlag(FLAG_ATTACH_SUPER_CALL_VERIFIED))
                        {
-                               throw new IllegalStateException("Component " + 
this + " of type " + getClass().getName() + " has not been properly attached.  "
-                                               + "Something in its class 
hierarchy has failed to call super.onAttach() in an override of onAttach() 
method");
+                               throw new IllegalStateException(
+                                               "Component " +
+                                                               this +
+                                                               " of type " +
+                                                               
getClass().getName() +
+                                                               " has not been 
properly attached.  " +
+                                                               "Something in 
its class hierarchy has failed to call super.onAttach() in an override of 
onAttach() method");
                        }
-                       
+
                        visitChildren(new IVisitor()
                        {
                                public Object component(Component component)
@@ -1419,13 +1423,18 @@
                                        component.onAttach();
                                        if 
(!component.getFlag(FLAG_ATTACH_SUPER_CALL_VERIFIED))
                                        {
-                                               throw new 
IllegalStateException("Component " + component + " of type " + 
component.getClass().getName() + " has not been properly attached.  "
-                                                               + "Something in 
its class hierarchy has failed to call super.onAttach() in an override of 
onAttach() method");
+                                               throw new IllegalStateException(
+                                                               "Component " +
+                                                                               
component +
+                                                                               
" of type " +
+                                                                               
component.getClass().getName() +
+                                                                               
" has not been properly attached.  " +
+                                                                               
"Something in its class hierarchy has failed to call super.onAttach() in an 
override of onAttach() method");
                                        }
                                        return IVisitor.CONTINUE_TRAVERSAL;
                                }
                        });
-                       
+
                        visitChildren(new IVisitor()
                        {
                                public Object component(Component component)
@@ -1480,8 +1489,8 @@
                        }
                        else
                        {
-                               throw new WicketRuntimeException("Error 
attaching this container for rendering: "
-                                               + this, ex);
+                               throw new WicketRuntimeException("Error 
attaching this container for rendering: " +
+                                               this, ex);
                        }
                }
        }


Reply via email to