You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jc...@apache.org on 2007/05/22 17:42:29 UTC

svn commit: r540610 - in /incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket: Component.java Page.java

Author: jcompagner
Date: Tue May 22 08:42:24 2007
New Revision: 540610

URL: http://svn.apache.org/viewvc?view=rev&rev=540610
Log:
made sure that afterRender() is always called
else the flag rendering sticks to true 
This still can happen if there is a exception in onAfterRender for the childs..

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/Page.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=540610&r1=540609&r2=540610
==============================================================================
--- 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 Tue May 22 08:42:24 2007
@@ -3076,21 +3076,27 @@
 	{
 		// if the component has been previously attached via attach()
 		// detach it now
-		setFlag(FLAG_AFTER_RENDERING, true);
-		onAfterRender();
-		if (getFlag(FLAG_AFTER_RENDERING))
+		try
 		{
-			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");
+			setFlag(FLAG_AFTER_RENDERING, true);
+			onAfterRender();
+			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");
+			}
+			// always detach children because components can be attached
+			// independently of their parents
+			onAfterRenderChildren();
+		}
+		finally
+		{
+			// this flag must always be set to false.
+			setFlag(FLAG_RENDERING, false);
 		}
-		setFlag(FLAG_RENDERING, false);
-
-		// always detach children because components can be attached
-		// independently of their parents
-		onAfterRenderChildren();
 	}
 
 	/**

Modified: incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java
URL: http://svn.apache.org/viewvc/incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java?view=diff&rev=540610&r1=540609&r2=540610
==============================================================================
--- incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java (original)
+++ incubator/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/Page.java Tue May 22 08:42:24 2007
@@ -894,9 +894,14 @@
 		});
 
 		// Handle request by rendering page
-		render(null);
-
-		afterRender();
+		try
+		{
+			render(null);
+		} 
+		finally
+		{
+			afterRender();
+		}
 
 		// Check rendering if it happened fully
 		checkRendering(this);