You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/01/17 14:54:24 UTC

svn commit: r735293 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java

Author: jdonnerstag
Date: Sat Jan 17 05:54:23 2009
New Revision: 735293

URL: http://svn.apache.org/viewvc?rev=735293&view=rev
Log:
fixed wicket-2025: isVisible should not be called after detach

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java?rev=735293&r1=735292&r2=735293&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/request/target/component/ComponentRequestTarget.java Sat Jan 17 05:54:23 2009
@@ -22,8 +22,8 @@
 
 /**
  * Default implementation of
- * {@link org.apache.wicket.request.target.component.IComponentRequestTarget}. Target that denotes
- * a single component instance.
+ * {@link org.apache.wicket.request.target.component.IComponentRequestTarget}. Target that denotes a
+ * single component instance.
  * 
  * @author Eelco Hillenius
  */
@@ -60,29 +60,34 @@
 			page.startComponentRender(component);
 		}
 
-		// Let component render itself
-		if (component instanceof Page)
+		// Render the component
+		try
 		{
-			// Use the default Page request target, if component is a Page
-			new PageRequestTarget((Page)component).respond(requestCycle);
-		}
-		else
-		{
-			// Render the component
-			try
+			// Let pages render itself
+			if (component instanceof Page)
 			{
-				// Render the component
-				component.renderComponent();
+				// Use the default Page request target, if component is a Page
+				new PageRequestTarget((Page)component).respond(requestCycle);
 			}
-			finally
+			else
 			{
-				component.getPage().detach();
+				// Render the component
+				component.renderComponent();
 			}
 		}
-
-		if (page != null)
+		finally
 		{
-			page.endComponentRender(component);
+			if (page != null)
+			{
+				try
+				{
+					page.endComponentRender(component);
+				}
+				finally
+				{
+					page.detach();
+				}
+			}
 		}
 	}
 
@@ -104,6 +109,7 @@
 	/**
 	 * @see java.lang.Object#equals(java.lang.Object)
 	 */
+	@Override
 	public boolean equals(final Object obj)
 	{
 		if (obj instanceof ComponentRequestTarget)
@@ -117,6 +123,7 @@
 	/**
 	 * @see java.lang.Object#hashCode()
 	 */
+	@Override
 	public int hashCode()
 	{
 		int result = "ComponentRequestTarget".hashCode();
@@ -127,6 +134,7 @@
 	/**
 	 * @see java.lang.Object#toString()
 	 */
+	@Override
 	public String toString()
 	{
 		return "[ComponentRequestTarget@" + hashCode() + " " + component + "]";