Author: ivaynberg Date: Fri Mar 26 14:51:52 2010 New Revision: 927887 URL: http://svn.apache.org/viewvc?rev=927887&view=rev Log: fixed bug in new component initialization
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java?rev=927887&r1=927886&r2=927887&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/Component.java Fri Mar 26 14:51:52 2010 @@ -888,20 +888,12 @@ public abstract class Component implemen { if (!getFlag(FLAG_INITIALIZED)) { - performInitialization(); + onInitialize(); setFlag(FLAG_INITIALIZED, true); } } /** - * Takes care of calling {...@link #onInitialize()} - */ - void performInitialization() - { - onInitialize(); - } - - /** * Adds a behavior modifier to the component. * * <p> Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java?rev=927887&r1=927886&r2=927887&view=diff ============================================================================== --- wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java (original) +++ wicket/trunk/wicket/src/main/java/org/apache/wicket/MarkupContainer.java Fri Mar 26 14:51:52 2010 @@ -950,17 +950,13 @@ public abstract class MarkupContainer ex "added"))); } - if (this instanceof Page) - { // a little icky... - child.initialize(); - } - else if (isInitialized()) + final Page page = findPage(); + + if (page != null) { child.initialize(); } - final Page page = findPage(); - if (page != null) { // Tell the page a component has been added @@ -976,9 +972,9 @@ public abstract class MarkupContainer ex } @Override - final void performInitialization() + final void initialize() { - super.performInitialization(); + super.initialize(); visitChildren(new IVisitor<Component, Void>() { public void component(final Component component, final IVisit<Void> visit) Modified: wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java?rev=927887&r1=927886&r2=927887&view=diff ============================================================================== --- wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java (original) +++ wicket/trunk/wicket/src/test/java/org/apache/wicket/ComponentInitializationTest.java Fri Mar 26 14:51:52 2010 @@ -28,6 +28,7 @@ public class ComponentInitializationTest TestComponent t1 = new TestComponent("t1"); TestComponent t2 = new TestComponent("t2"); TestComponent t3 = new TestComponent("t3"); + TestComponent t4 = new TestComponent("t4"); // as soon as we add to page child should be initialized page.add(t1); @@ -43,8 +44,20 @@ public class ComponentInitializationTest assertEquals(1, t1.getCount()); assertEquals(1, t2.getCount()); assertEquals(1, t3.getCount()); + + // test intialization when adding to removed components + page.remove(t1); + t3.add(t4); + assertEquals(0, t4.getCount()); + + // test initialization when readding a component with uninitialized children + page.add(t1); + assertEquals(1, t4.getCount()); + + } + public void testAtomicity() { Page page = new TestPage(); @@ -72,9 +85,9 @@ public class ComponentInitializationTest page.add(t1); assertEquals(1, t1.getCount()); assertEquals(1, t2.getCount()); - } + private static class TestPage extends WebPage {