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);