Repository: wicket
Updated Branches:
  refs/heads/master 5886f69e6 -> f2bc2ba09


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


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

Branch: refs/heads/master
Commit: f2bc2ba0985352c44a416f9174f01e88e87f53e5
Parents: 5886f69
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:24:35 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/f2bc2ba0/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 52b3a82..63b1b35 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,12 +30,16 @@ 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);
+
        /**
         * Collects the html generated by the rendering of a page.
         *
@@ -66,13 +70,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.
@@ -87,6 +92,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