Repository: wicket
Updated Branches:
  refs/heads/wicket-7.x 18a1c2f9e -> 08be805e1


WICKET-6462 When an Ajax Button is submitted, AjaxFormSubmitBehavior #
onSubmit is called twice

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

Branch: refs/heads/wicket-7.x
Commit: bedf3fdcd4e7ac12c6dac9694e4029e50a289f77
Parents: 18a1c2f
Author: Andrea Del Bene <adelb...@apache.org>
Authored: Mon Sep 4 21:48:41 2017 +0200
Committer: Andrea Del Bene <andrea.delb...@innoteam.it>
Committed: Tue Sep 5 17:53:53 2017 +0200

----------------------------------------------------------------------
 .../apache/wicket/ajax/form/AjaxFormSubmitBehavior.java  |  7 -------
 .../java/org/apache/wicket/markup/html/form/Form.java    | 11 +++++++----
 2 files changed, 7 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/bedf3fdc/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
 
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
index 2d2f07f..b281be4 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/ajax/form/AjaxFormSubmitBehavior.java
@@ -172,13 +172,6 @@ public abstract class AjaxFormSubmitBehavior extends 
AjaxEventBehavior
                Form<?> form = getForm();
                
                form.getRootForm().onFormSubmitted(submitter);
-               
-               //the target form might have wantSubmitOnParentFormSubmit 
returning "false"
-               //so it must be explicitly submitted.
-               if (!form.isSubmitted())
-               {
-                       form.onFormSubmitted(submitter);
-               }
        }
 
        /**

http://git-wip-us.apache.org/repos/asf/wicket/blob/bedf3fdc/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
index 75e06cb..da0e1e4 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/Form.java
@@ -734,7 +734,7 @@ public class Form<T> extends WebMarkupContainer
         */
        public final void onFormSubmitted(IFormSubmitter submitter)
        {
-               markFormsSubmitted();
+               markFormsSubmitted(submitter);
 
                if (handleMultiPart())
                {
@@ -1014,18 +1014,21 @@ public class Form<T> extends WebMarkupContainer
 
        /**
         * Sets FLAG_SUBMITTED to true on this form and every enabled nested 
form.
+        * @param submitter 
         */
-       private void markFormsSubmitted()
+       private void markFormsSubmitted(IFormSubmitter submitter)
        {
                setFlag(FLAG_SUBMITTED, true);
-
+               Form<?> formToProcess = findFormToProcess(submitter);
+               
                visitChildren(Form.class, new IVisitor<Component, Void>()
                {
                        @Override
                        public void component(final Component component, final 
IVisit<Void> visit)
                        {
                                Form<?> form = (Form<?>)component;
-                               if (form.wantSubmitOnParentFormSubmit() && 
form.isEnabledInHierarchy() && form.isVisibleInHierarchy())
+                               if ((form.wantSubmitOnParentFormSubmit() || 
form == formToProcess) 
+                                       && form.isEnabledInHierarchy() && 
form.isVisibleInHierarchy())
                                {
                                        form.setFlag(FLAG_SUBMITTED, true);
                                        return;

Reply via email to