Author: mgrigorov
Date: Wed Aug 11 18:55:14 2010
New Revision: 984532

URL: http://svn.apache.org/viewvc?rev=984532&view=rev
Log:
WICKET-2944 Application addRenderHeadListener causing error

Do not throw exception for HeaderResponse listeners during Ajax request 
processing.
Log a debug message and ignore the call.

merge r984528 from 1.4.x


Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java?rev=984532&r1=984531&r2=984532&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java 
(original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java 
Wed Aug 11 18:55:14 2010
@@ -32,7 +32,6 @@ import org.apache.wicket.Application;
 import org.apache.wicket.Component;
 import org.apache.wicket.MarkupContainer;
 import org.apache.wicket.Page;
-import org.apache.wicket.WicketRuntimeException;
 import org.apache.wicket.behavior.IBehavior;
 import org.apache.wicket.markup.html.IHeaderResponse;
 import org.apache.wicket.markup.html.internal.HeaderResponse;
@@ -889,83 +888,104 @@ public class AjaxRequestTarget implement
        {
                private static final long serialVersionUID = 1L;
 
-               private void checkHeaderRendering()
+               private boolean checkHeaderRendering()
                {
                        if (headerRendering == false)
                        {
-                               throw new WicketRuntimeException(
-                                       "Only methods that can be called on 
IHeaderResponse outside renderHead() are renderOnLoadJavascript and 
renderOnDomReadyJavascript");
+                               LOG.debug("Only methods that can be called on 
IHeaderResponse outside renderHead() are renderOnLoadJavascript and 
renderOnDomReadyJavascript");
                        }
+
+                       return headerRendering;
                }
 
                @Override
                public void renderCSSReference(ResourceReference reference, 
String media)
                {
-                       checkHeaderRendering();
-                       super.renderCSSReference(reference, media);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderCSSReference(reference, media);
+                       }
                }
 
                @Override
                public void renderCSSReference(String url)
                {
-                       checkHeaderRendering();
-                       super.renderCSSReference(url);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderCSSReference(url);
+                       }
                }
 
                @Override
                public void renderCSSReference(String url, String media)
                {
-                       checkHeaderRendering();
-                       super.renderCSSReference(url, media);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderCSSReference(url, media);
+                       }
                }
 
                @Override
                public void renderJavascript(CharSequence javascript, String id)
                {
-                       checkHeaderRendering();
-                       super.renderJavascript(javascript, id);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderJavascript(javascript, id);
+                       }
                }
 
                @Override
                public void renderCSSReference(ResourceReference reference)
                {
-                       checkHeaderRendering();
-                       super.renderCSSReference(reference);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderCSSReference(reference);
+                       }
                }
 
                @Override
                public void renderJavascriptReference(ResourceReference 
reference)
                {
-                       checkHeaderRendering();
-                       super.renderJavascriptReference(reference);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderJavascriptReference(reference);
+                       }
                }
 
                @Override
                public void renderJavascriptReference(ResourceReference 
reference, String id)
                {
-                       checkHeaderRendering();
-                       super.renderJavascriptReference(reference, id);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderJavascriptReference(reference, id);
+                       }
                }
 
                @Override
                public void renderJavascriptReference(String url)
                {
-                       checkHeaderRendering();
-                       super.renderJavascriptReference(url);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderJavascriptReference(url);
+                       }
                }
 
                @Override
                public void renderJavascriptReference(String url, String id)
                {
-                       checkHeaderRendering();
-                       super.renderJavascriptReference(url, id);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderJavascriptReference(url, id);
+                       }
                }
 
                @Override
                public void renderString(CharSequence string)
                {
-                       checkHeaderRendering();
-                       super.renderString(string);
+                       if (checkHeaderRendering())
+                       {
+                               super.renderString(string);
+                       }
                }
 
                /**


Reply via email to