You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2010/08/11 20:55:14 UTC

svn commit: r984532 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/ajax/AjaxRequestTarget.java

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);
+			}
 		}
 
 		/**