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 + "]";


Reply via email to