@Julien HENRY <henr...@yahoo.fr> If you issue a return statement in a page constructor before the components are added, what happens?
1. the page renders normally 2. exception because missing components Now for the answer: typically 2 is correct. But that got me thinking of all the ways you can have 1 as a result (this would be a great list for a twitter thread) a. the components were added in a super-class constructor b. the components were added in a sub-class constructor c. the components were added in an onInitialize d. the components were added in an onConfigure e. the components were added in an onBeforeRender f. the components were added using a Behavior (bad choice, but possible) g. the page is invisible h. the container that the components were added to is invisbile i. the components are added in an IComponentInstantiationListener j. the wicket:id's were escaped in the markup (e.g. awicket:id="...") k. the components are added in an onInitialize of a child component (added before the return, adding in child's constructor would fail because parent is not know yet) l. a custom RequestCycle adds the missing components in handleException, or a IRequestCycleListener, or an IRequestHandler and restarts rendering (is that necessary?) m. an IComponentResolver creates the missing component(s) (not 100% sure this works) Perhaps others can find insidious ways of adding components to a page? I think this would be quite a nice poll on twitter. Martijn