You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by iv...@apache.org on 2007/03/26 08:19:51 UTC
svn commit: r522435 -
/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java
Author: ivaynberg
Date: Sun Mar 25 23:19:51 2007
New Revision: 522435
URL: http://svn.apache.org/viewvc?view=rev&rev=522435
Log:
better detach behavior
Modified:
incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java
Modified: incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java?view=diff&rev=522435&r1=522434&r2=522435
==============================================================================
--- incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java (original)
+++ incubator/wicket/branches/wicket-1.x/jdk-1.4/wicket/src/main/java/wicket/Component.java Sun Mar 25 23:19:51 2007
@@ -2769,17 +2769,29 @@
*/
public final void detach()
{
- setFlag(FLAG_DETACHING, true);
- onDetach();
- if (getFlag(FLAG_DETACHING))
+ if (getFlag(FLAG_ATTACHED))
{
- throw new IllegalStateException(Component.class.getName()
- + " has not been properly detached. Something in the hierarchy of "
- + getClass().getName()
- + " has not called super.onDetach() in the override of onDetach() method");
+ // if the component has been previously attached via attach()
+ // detach it now
+ setFlag(FLAG_DETACHING, true);
+ onDetach();
+ if (getFlag(FLAG_DETACHING))
+ {
+ throw new IllegalStateException(Component.class.getName()
+ + " has not been properly detached. Something in the hierarchy of "
+ + getClass().getName()
+ + " has not called super.onDetach() in the override of onDetach() method");
+ }
+ setFlag(FLAG_ATTACHED, false);
}
- setFlag(FLAG_ATTACHED, false);
+
+ // always detach models because they can be attached without the
+ // component. eg component has a compoundpropertymodel and one of its
+ // children component's getmodelobject is called
+ detachModels();
+ // always detach children because components can be attached
+ // independently of their parents
detachChildren();
}