You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/12/30 17:55:24 UTC

svn commit: r894674 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java

Author: jdonnerstag
Date: Wed Dec 30 16:55:24 2009
New Revision: 894674

URL: http://svn.apache.org/viewvc?rev=894674&view=rev
Log:
Form.isMultipart() doesn't check FormComponent.isMultipart() on nested components
Issue: WICKET-2638

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=894674&r1=894673&r2=894674&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java Wed Dec 30 16:55:24 2009
@@ -1422,28 +1422,33 @@
 		{
 			return true;
 		}
-		else
+
+		final boolean[] anyEmbeddedMultipart = new boolean[] { false };
+		visitChildren(Component.class, new IVisitor<Component>()
 		{
-			final boolean[] anyEmbeddedMultipart = new boolean[] { false };
-			visitChildren(Form.class, new IVisitor<Form<?>>()
+			public Object component(Component component)
 			{
-
-				public Object component(Form<?> form)
+				boolean isMultiPart = false;
+				if (component instanceof Form)
 				{
-					if (form.multiPart != 0)
-					{
-						anyEmbeddedMultipart[0] = true;
-						return STOP_TRAVERSAL;
-					}
-					else
-					{
-						return CONTINUE_TRAVERSAL;
-					}
+					Form<?> form = (Form<?>)component;
+					isMultiPart = (form.multiPart != 0);
 				}
+				else if (component instanceof FormComponent)
+				{
+					FormComponent<?> form = (FormComponent<?>)component;
+					isMultiPart = form.isMultiPart();
+				}
+				if (isMultiPart == true)
+				{
+					anyEmbeddedMultipart[0] = true;
+					return STOP_TRAVERSAL;
+				}
+				return CONTINUE_TRAVERSAL;
+			}
 
-			});
-			return anyEmbeddedMultipart[0];
-		}
+		});
+		return anyEmbeddedMultipart[0];
 	}
 
 	/**