Author: jcompagner
Date: Sat Oct  4 14:39:44 2008
New Revision: 701713

URL: http://svn.apache.org/viewvc?rev=701713&view=rev
Log:
from 1.3 (better handling of ajax detach)

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=701713&r1=701712&r2=701713&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 
Sat Oct  4 14:39:44 2008
@@ -441,7 +441,11 @@
                if (markupIdToComponent.size() > 0)
                {
                        final Component component = 
markupIdToComponent.values().iterator().next();
-                       component.getPage().detach();
+                       final Page page = 
(Page)component.findParent(Page.class);
+                       if (page != null)
+                       {
+                               page.detach();
+                       }
                }
        }
 
@@ -761,10 +765,25 @@
 
                page.startComponentRender(component);
 
-               component.prepareForRender();
+               try
+               {
+                       component.prepareForRender();
 
-               // render any associated headers of the component
-               respondHeaderContribution(response, component);
+                       // render any associated headers of the component
+                       respondHeaderContribution(response, component);
+               }
+               catch (RuntimeException e)
+               {
+                       try
+                       {
+                               component.afterRender();
+                       }
+                       catch (RuntimeException e2)
+                       {
+                               // ignore this one could be a result off.
+                       }
+                       throw e;
+               }
 
                component.renderComponent();
 


Reply via email to