You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/08/04 11:41:14 UTC

git commit: WICKET-5659 Add a setting to MultiFileUploadField to not close the file uploads' streams

Repository: wicket
Updated Branches:
  refs/heads/wicket-6.x 176e2b4f6 -> 28ac20584


WICKET-5659 Add a setting to MultiFileUploadField to not close the file uploads' streams

(cherry picked from commit 38d6b4a9c1bcf2a6ebcddeefcdf372839ca80e5c)


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

Branch: refs/heads/wicket-6.x
Commit: 28ac20584d868f92b3b937743ae76ca3a216cdbe
Parents: 176e2b4
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Aug 4 11:40:11 2014 +0200
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Aug 4 11:40:38 2014 +0200

----------------------------------------------------------------------
 .../html/form/upload/MultiFileUploadField.java  | 41 +++++++++++++-------
 1 file changed, 28 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/28ac2058/wicket-core/src/main/java/org/apache/wicket/markup/html/form/upload/MultiFileUploadField.java
----------------------------------------------------------------------
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 4e803a3..179151f 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
@@ -329,30 +329,45 @@ public class MultiFileUploadField extends FormComponentPanel<Collection<FileUplo
 	@Override
 	protected void onDetach()
 	{
-		// cleanup any opened filestreams
-		Collection<FileUpload> uploads = getConvertedInput();
-		if (uploads != null)
+		if (forceCloseStreamsOnDetach())
 		{
-			for (FileUpload upload : uploads)
+			// cleanup any opened filestreams
+			Collection<FileUpload> uploads = getConvertedInput();
+			if (uploads != null)
 			{
-				upload.closeStreams();
+				for (FileUpload upload : uploads)
+				{
+					upload.closeStreams();
+				}
 			}
-		}
 
-		// cleanup any caches
-		inputArrayCache = null;
+			// cleanup any caches
+			inputArrayCache = null;
 
-		// clean up the model because we don't want FileUpload objects in session
-		Collection<FileUpload> modelObject = getModelObject();
-		if (modelObject != null)
-		{
-			modelObject.clear();
+			// clean up the model because we don't want FileUpload objects in session
+			Collection<FileUpload> modelObject = getModelObject();
+			if (modelObject != null)
+			{
+				modelObject.clear();
+			}
 		}
 
 		super.onDetach();
 	}
 
 	/**
+	 * The FileUploadField will close any input streams you have opened in its FileUpload by
+	 * default. If you wish to manage the stream yourself (e.g. you want to use it in another
+	 * thread) then you can override this method to prevent this behavior.
+	 *
+	 * @return <code>true</code> if stream should be closed at the end of request
+	 */
+	protected boolean forceCloseStreamsOnDetach()
+	{
+		return true;
+	}
+
+	/**
 	 * Model that will construct the caption string
 	 * 
 	 * @author ivaynberg