You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by cc...@apache.org on 2010/09/06 08:54:14 UTC

svn commit: r992952 - /tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java

Author: ccordenier
Date: Mon Sep  6 06:54:14 2010
New Revision: 992952

URL: http://svn.apache.org/viewvc?rev=992952&view=rev
Log:
Apply TAP5-1100 to 5.1.0.8 (see TAP5-733)

Modified:
    tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java

Modified: tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java?rev=992952&r1=992951&r2=992952&view=diff
==============================================================================
--- tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java (original)
+++ tapestry/tapestry5/branches/5.1.0.x-dev/tapestry-core/src/main/java/org/apache/tapestry5/internal/structure/ComponentPageElementImpl.java Mon Sep  6 06:54:14 2010
@@ -567,6 +567,9 @@ public class ComponentPageElementImpl ex
 
     private void initializeRenderPhases()
     {
+        if (renderPhasesInitalized)
+            return;
+
         setupRenderPhase = new SetupRenderPhase();
         beginRenderPhase = new BeginRenderPhase();
         beforeRenderTemplatePhase = new BeforeRenderTemplatePhase();
@@ -799,6 +802,11 @@ public class ComponentPageElementImpl ex
 
     public void enqueueBeforeRenderBody(RenderQueue queue)
     {
+        // TAP5-1100: In certain Ajax cases, a component may be asked to render its body
+        // that has never rendered itself (and thus, never called initializeRenderPhases). Subtle.
+
+        initializeRenderPhases();
+
         // If no body, then no beforeRenderBody or afterRenderBody
 
         if (bodyBlock != null)
@@ -976,8 +984,7 @@ public class ComponentPageElementImpl ex
         // We assume that by the time we start to render, the structure (i.e., mixins) is nailed down.
         // We could add a lock, but that seems wasteful.
 
-        if (!renderPhasesInitalized)
-            initializeRenderPhases();
+        initializeRenderPhases();
 
         // TODO: An error if the render flag is already set (recursive rendering not
         // allowed or advisable).