Updated Branches: refs/heads/master a3b31f263 -> 908dc6f8e
WICKET-5158 Ignore missing Page in StatelessForm#process() Project: http://git-wip-us.apache.org/repos/asf/wicket/repo Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/908dc6f8 Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/908dc6f8 Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/908dc6f8 Branch: refs/heads/master Commit: 908dc6f8e429270e2ae95d7049a28db3e9bbef91 Parents: a3b31f2 Author: Martin Tzvetanov Grigorov <[email protected]> Authored: Fri Apr 26 14:27:44 2013 +0200 Committer: Martin Tzvetanov Grigorov <[email protected]> Committed: Fri Apr 26 14:27:44 2013 +0200 ---------------------------------------------------------------------- .../wicket/markup/html/form/StatelessForm.java | 30 +++++++++------ 1 files changed, 18 insertions(+), 12 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/wicket/blob/908dc6f8/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 588b075..cb4af6e 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,6 +16,7 @@ */ 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; @@ -86,22 +87,27 @@ public class StatelessForm<T> extends Form<T> { super.process(submittingComponent); - final PageParameters parameters = getPage().getPageParameters(); - if (parameters != null) + Page page = findPage(); + // the application may have removed this form from its parent in #onSubmit() + if (page != null) { - visitFormComponents(new IVisitor<FormComponent<?>, Void>() + final PageParameters parameters = page.getPageParameters(); + if (parameters != null) { - @Override - public void component(final FormComponent<?> formComponent, final IVisit<Void> visit) + visitFormComponents(new IVisitor<FormComponent<?>, Void>() { - parameters.remove(formComponent.getInputName()); + @Override + public void component(final FormComponent<?> formComponent, final IVisit<Void> visit) + { + parameters.remove(formComponent.getInputName()); + } + }); + parameters.remove(getHiddenFieldId()); + if (submittingComponent instanceof AbstractSubmitLink) + { + AbstractSubmitLink submitLink = (AbstractSubmitLink)submittingComponent; + parameters.remove(submitLink.getInputName()); } - }); - parameters.remove(getHiddenFieldId()); - if (submittingComponent instanceof AbstractSubmitLink) - { - AbstractSubmitLink submitLink = (AbstractSubmitLink)submittingComponent; - parameters.remove(submitLink.getInputName()); } } }
