Updated Branches:
  refs/heads/master 9ec2db95b -> 8fc18e3b8

WICKET-5158 Ignore missing Page in StatelessForm#process()

Get the page parameters before processing the form.


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/8fc18e3b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/8fc18e3b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/8fc18e3b

Branch: refs/heads/master
Commit: 8fc18e3b888c591403353f6bc103174041f78554
Parents: 9ec2db9
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Sun Apr 28 07:50:55 2013 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Sun Apr 28 07:50:55 2013 +0200

----------------------------------------------------------------------
 .../wicket/markup/html/form/StatelessForm.java     |   33 +++++++--------
 1 files changed, 15 insertions(+), 18 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/8fc18e3b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
index cb4af6e..c487b00 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/StatelessForm.java
@@ -16,7 +16,6 @@
  */
 package org.apache.wicket.markup.html.form;
 
-import org.apache.wicket.Page;
 import org.apache.wicket.model.IModel;
 import org.apache.wicket.request.mapper.parameter.PageParameters;
 import org.apache.wicket.util.visit.IVisit;
@@ -85,29 +84,27 @@ public class StatelessForm<T> extends Form<T>
        @Override
        public void process(IFormSubmitter submittingComponent)
        {
+               // get the parameters before processing the form because the
+               // application may remove this form from its parent in 
#onSubmit() (WICKET-5158)
+               final PageParameters parameters = getPage().getPageParameters();
+
                super.process(submittingComponent);
 
-               Page page = findPage();
-               // the application may have removed this form from its parent 
in #onSubmit()
-               if (page != null)
+               if (parameters != null)
                {
-                       final PageParameters parameters = 
page.getPageParameters();
-                       if (parameters != null)
+                       visitFormComponents(new IVisitor<FormComponent<?>, 
Void>()
                        {
-                               visitFormComponents(new 
IVisitor<FormComponent<?>, Void>()
-                               {
-                                       @Override
-                                       public void component(final 
FormComponent<?> formComponent, final IVisit<Void> visit)
-                                       {
-                                               
parameters.remove(formComponent.getInputName());
-                                       }
-                               });
-                               parameters.remove(getHiddenFieldId());
-                               if (submittingComponent instanceof 
AbstractSubmitLink)
+                               @Override
+                               public void component(final FormComponent<?> 
formComponent, final IVisit<Void> visit)
                                {
-                                       AbstractSubmitLink submitLink = 
(AbstractSubmitLink)submittingComponent;
-                                       
parameters.remove(submitLink.getInputName());
+                                       
parameters.remove(formComponent.getInputName());
                                }
+                       });
+                       parameters.remove(getHiddenFieldId());
+                       if (submittingComponent instanceof AbstractSubmitLink)
+                       {
+                               AbstractSubmitLink submitLink = 
(AbstractSubmitLink)submittingComponent;
+                               parameters.remove(submitLink.getInputName());
                        }
                }
        }

Reply via email to