You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by sy...@apache.org on 2005/11/27 14:39:47 UTC

svn commit: r349231 - /cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java

Author: sylvain
Date: Sun Nov 27 05:39:42 2005
New Revision: 349231

URL: http://svn.apache.org/viewcvs?rev=349231&view=rev
Log:
Fix bug when the submit widget is created when reading the request (e.g. row actions)

Modified:
    cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java

Modified: cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java
URL: http://svn.apache.org/viewcvs/cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java?rev=349231&r1=349230&r2=349231&view=diff
==============================================================================
--- cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java (original)
+++ cocoon/blocks/forms/trunk/java/org/apache/cocoon/forms/formmodel/Form.java Sun Nov 27 05:39:42 2005
@@ -297,7 +297,24 @@
         }
 
         this.phase = ProcessingPhase.READ_FROM_REQUEST;
+
+        try {
+            // Start buffering events
+            this.bufferEvents = true;
+
+            doReadFromRequest(formContext);
+
+            // Fire events, still buffering them: this ensures they will be handled in the same
+            // order as they were added.
+            fireEvents();
+        } finally {
+            // No need for buffering in the following phases
+            this.bufferEvents = false;
+        }
+
         // Find the submit widget, if not an action
+        // This has to occur after reading from the request, to handle stateless forms
+        // where the submit widget is recreated when the request is read (e.g. a row-action).
         this.submitWidget = null;
         String submitId = formContext.getRequest().getParameter("forms_submit_id");
         if (submitId != null && submitId.length() > 0) {
@@ -316,20 +333,6 @@
             }
 
             setSubmitWidget(submit);
-        }
-
-        try {
-            // Start buffering events
-            this.bufferEvents = true;
-
-            doReadFromRequest(formContext);
-
-            // Fire events, still buffering them: this ensures they will be handled in the same
-            // order as they were added.
-            fireEvents();
-        } finally {
-            // No need for buffering in the following phases
-            this.bufferEvents = false;
         }
 
         // Notify the end of the current phase