You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2011/07/21 20:21:09 UTC

svn commit: r1149301 - /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java

Author: hlship
Date: Thu Jul 21 18:21:07 2011
New Revision: 1149301

URL: http://svn.apache.org/viewvc?rev=1149301&view=rev
Log:
TAP5-1508: Properly check the render phase event to see if it was aborted by the super-class implementation of the render phase method

Modified:
    tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java

Modified: tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java?rev=1149301&r1=1149300&r2=1149301&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java (original)
+++ tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/transform/RenderPhaseMethodWorker.java Thu Jul 21 18:21:07 2011
@@ -221,11 +221,8 @@ public class RenderPhaseMethodWorker imp
         {
             private void addSuperCall(InstructionBuilder builder)
             {
-                // At the top of the inheritance, there's no need to call super (this is a pretty standard case).
-                if (!isRoot)
-                {
-                    builder.loadThis().loadArguments().invokeSpecial(plasticClass.getSuperClassName(), interfaceMethodDescription);
-                }
+                builder.loadThis().loadArguments().invokeSpecial(plasticClass.getSuperClassName(), interfaceMethodDescription);
+
             }
 
             private void invokeMethod(InstructionBuilder builder, PlasticMethod method)
@@ -264,9 +261,13 @@ public class RenderPhaseMethodWorker imp
 
             public void doBuild(InstructionBuilder builder)
             {
-                if (!reverse)
+                if (!reverse && !isRoot)
                 {
                     addSuperCall(builder);
+
+                    builder.loadArgument(1).invoke(Event.class, boolean.class, "isAborted");
+
+                    builder.when(Condition.NON_ZERO, JUST_RETURN);
                 }
 
                 for (PlasticMethod invokedMethod : orderedMethods)
@@ -274,7 +275,7 @@ public class RenderPhaseMethodWorker imp
                     invokeMethod(builder, invokedMethod);
                 }
 
-                if (reverse)
+                if (reverse && !isRoot)
                 {
                     addSuperCall(builder);
                 }