I apologize for my ignorance, but I am kind of confused about how the render phases work.
Simple example: class Base{ @SetupRender protected boolean setupRender(MarkupWriter writer) { //do something } } class Derived extends Base{ @BeginRender protected void beginRender() { //do something } } class AppModule{ public static PageResponseRenderer decoratePageResponseRenderer (){ return new PageResponseRenderer() { public void renderPageResponse(Page page) throws IOException { //do something ((PageResponseRenderer) delegate).renderPageResponse(page); } } } } Request comes in to Derived: Expected: Base(SetupRender)->Derived(BeginRender)->AppModule(renderPageResponse) Actual: Derived(BeginRender)->AppModule(renderPageResponse)->Base(SetupRender) How come setupRender is being called from renderPageResponse and not right at the beginning when the request comes in? According to the docs at http://tapestry.apache.org/tapestry5.1/guide/rendering.html, SetupRender should happen right upfront. Could someone please shed some light? I am still learning. Derived(Base).setupRender(MarkupWriter, Event) line: not available ComponentPageElementImpl$SetupRenderPhase.invokeComponent(Component, MarkupWriter, Event) line: 184 ComponentPageElementImpl$SetupRenderPhase(ComponentPageElementImpl$AbstractPhase).run(Component) line: 164 ComponentPageElementImpl.invoke(boolean, ComponentCallback) line: 933 ComponentPageElementImpl.access$400(ComponentPageElementImpl, boolean, ComponentCallback) line: 49 ComponentPageElementImpl$SetupRenderPhase(ComponentPageElementImpl$AbstractPhase).callback(boolean, MarkupWriter) line: 159 ComponentPageElementImpl$SetupRenderPhase.render(MarkupWriter, RenderQueue) line: 189 RenderQueueImpl.run(MarkupWriter) line: 74 PageRenderQueueImpl.render(MarkupWriter) line: 121 $PageRenderQueue_122a97bad5c.render(MarkupWriter) line: not available $PageRenderQueue_122a97bad5b.render(MarkupWriter) line: not available MarkupRendererTerminator.renderMarkup(MarkupWriter) line: 37 TapestryModule$27.renderMarkup(MarkupWriter, MarkupRenderer) line: 1752 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available TapestryModule$26.renderMarkup(MarkupWriter, MarkupRenderer) line: 1733 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available TapestryModule$25.renderMarkup(MarkupWriter, MarkupRenderer) line: 1715 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available TapestryModule$24.renderMarkup(MarkupWriter, MarkupRenderer) line: 1701 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available TapestryModule$23.renderMarkup(MarkupWriter, MarkupRenderer) line: 1682 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available TapestryModule$22.renderMarkup(MarkupWriter, MarkupRenderer) line: 1663 $MarkupRenderer_122a97bad60.renderMarkup(MarkupWriter) line: not available $MarkupRenderer_122a97bad5a.renderMarkup(MarkupWriter) line: not available PageMarkupRendererImpl.renderPageMarkup(Page, MarkupWriter) line: 64 $PageMarkupRenderer_122a97bad56.renderPageMarkup(Page, MarkupWriter) line: not available PageResponseRendererImpl.renderPageResponse(Page) line: 61 -- View this message in context: http://www.nabble.com/SetupRender---why-is-it-called-from-PageResponseRendererImpl.renderPageResponse--tp24636416p24636416.html Sent from the Tapestry - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org