Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 273814a95 -> 9fb49a898


WICKET-5875 Log a warning when a non-orphan component is passed for standalone 
rendering to ComponentRenderer#renderComponent()

(cherry picked from commit f2bc2ba0985352c44a416f9174f01e88e87f53e5)


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

Branch: refs/heads/wicket-6.x
Commit: 9fb49a898d5dd176b55cc827beafc246fa0055e9
Parents: 273814a
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Wed Apr 15 11:24:35 2015 +0300
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Wed Apr 15 11:27:21 2015 +0300

----------------------------------------------------------------------
 .../core/util/string/ComponentRenderer.java     | 21 ++++++++++++++++----
 1 file changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/9fb49a89/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java
index 1c0131e..c86e0c9 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/util/string/ComponentRenderer.java
@@ -30,19 +30,23 @@ import org.apache.wicket.request.Response;
 import org.apache.wicket.request.cycle.RequestCycle;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.StringResourceStream;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  * A helper class for rendering components and pages
  */
 public class ComponentRenderer
 {
+       private static final Logger LOGGER = 
LoggerFactory.getLogger(ComponentRenderer.class);
+
        /**
         * The id to use when rendering a component
         * @deprecated Not used since WICKET-5232 (6.9.0)
         */
        @Deprecated
        public static final String COMP_ID = "compId";
-       
+
        /**
         * Collects the html generated by the rendering of a page.
         *
@@ -73,13 +77,14 @@ public class ComponentRenderer
                return tempResponse.getText();
        }
 
-
        /**
         * Collects the html generated by the rendering of a component.
-        * 
-        * NOTE: this method i meant to render fresh component instances that 
are disposed after the 
+        *
+        * <p>
+        * NOTE: this method is meant to render fresh component instances that 
are disposed after the
         * html has been generate. To avoid unwanted side effects do not use it 
with components that 
         * are from an existing hierarchy.
+        * </p>
         *
         * @param component
         *            the component to render.
@@ -94,6 +99,14 @@ public class ComponentRenderer
 
                MarkupContainer oldParent = component.getParent();
 
+               if (oldParent != null && LOGGER.isWarnEnabled())
+               {
+                       LOGGER.warn("Component '{}' with a parent '{}' is 
passed for standalone rendering. " +
+                                       "It is recommended to render only 
orphan components because they are not cleaned up/detached" +
+                                       " after the rendering.",
+                                       component, oldParent);
+               }
+
                try
                {
                        requestCycle.setResponse(tempResponse);

Reply via email to