You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@wicket.apache.org by Sven Meier <sv...@meiers.net> on 2015/10/30 14:48:19 UTC

MultiFileUploadField

Hi all,

I had problems building Wicket 6.x due to a failure in 
MultiFileUploadFieldTest:
It seems that depending on the JVM the uploaded files are in a different 
order.

How about sorting the upload by input name?

diff --git 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
index 450a42d..cc95ff9 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form.upload;

  import java.util.ArrayList;
  import java.util.Collection;
+import java.util.Collections;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
@@ -273,6 +274,7 @@ public class MultiFileUploadField extends 
FormComponentPanel<Collection<FileUplo

                         if (names != null)
                         {
+                               Collections.sort(names);
                                 inputArrayCache = names.toArray(new 
String[names.size()]);
                         }
                 }

This way the test will always work, and the upload is kept in the order 
the user has added the files.

WDYT?

Sven

Re: MultiFileUploadField

Posted by Martin Grigorov <mg...@apache.org>.
Hi Sven,

I guess you have this error while building 6.x with JDK 7+?
This is a known problem. And the solution to the other places we had this
problem was to use LinkedHashMap, as Tobias suggested.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Fri, Oct 30, 2015 at 3:48 PM, Sven Meier <sv...@meiers.net> wrote:

> Hi all,
>
> I had problems building Wicket 6.x due to a failure in
> MultiFileUploadFieldTest:
> It seems that depending on the JVM the uploaded files are in a different
> order.
>
> How about sorting the upload by input name?
>
> diff --git
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> index 450a42d..cc95ff9 100644
> ---
> a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> +++
> b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form.upload;
>
>  import java.util.ArrayList;
>  import java.util.Collection;
> +import java.util.Collections;
>  import java.util.HashMap;
>  import java.util.List;
>  import java.util.Map;
> @@ -273,6 +274,7 @@ public class MultiFileUploadField extends
> FormComponentPanel<Collection<FileUplo
>
>                         if (names != null)
>                         {
> +                               Collections.sort(names);
>                                 inputArrayCache = names.toArray(new
> String[names.size()]);
>                         }
>                 }
>
> This way the test will always work, and the upload is kept in the order
> the user has added the files.
>
> WDYT?
>
> Sven
>

Re: MultiFileUploadField

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

I don't know the other code of the file upload, but would it be better to use a LinkedHashMap to ensure the order?

kind regards

Tobias

> Am 30.10.2015 um 14:48 schrieb Sven Meier <sv...@meiers.net>:
> 
> Hi all,
> 
> I had problems building Wicket 6.x due to a failure in MultiFileUploadFieldTest:
> It seems that depending on the JVM the uploaded files are in a different order.
> 
> How about sorting the upload by input name?
> 
> diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> index 450a42d..cc95ff9 100644
> --- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> +++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
> @@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.form.upload;
> 
> import java.util.ArrayList;
> import java.util.Collection;
> +import java.util.Collections;
> import java.util.HashMap;
> import java.util.List;
> import java.util.Map;
> @@ -273,6 +274,7 @@ public class MultiFileUploadField extends FormComponentPanel<Collection<FileUplo
> 
>                        if (names != null)
>                        {
> +                               Collections.sort(names);
>                                inputArrayCache = names.toArray(new String[names.size()]);
>                        }
>                }
> 
> This way the test will always work, and the upload is kept in the order the user has added the files.
> 
> WDYT?
> 
> Sven