You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by pe...@apache.org on 2010/11/30 19:13:12 UTC
svn commit: r1040669 - in /wicket/trunk:
wicket-util/src/main/java/org/apache/wicket/util/upload/
wicket/src/main/java/org/apache/wicket/markup/html/form/upload/
Author: pete
Date: Tue Nov 30 18:13:12 2010
New Revision: 1040669
URL: http://svn.apache.org/viewvc?rev=1040669&view=rev
Log:
WICKET-2833: try to rename uploaded files first (which is faster), then copy them.
additionally:
- fix possible serialization issue
- log message when deletion of file fails
- increase buffer size
Modified:
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/DiskFileItem.java
wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/FileItem.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/DiskFileItem.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/DiskFileItem.java?rev=1040669&r1=1040668&r2=1040669&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/DiskFileItem.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/DiskFileItem.java Tue Nov 30 18:13:12 2010
@@ -31,6 +31,8 @@ import java.util.Map;
import org.apache.wicket.util.file.FileCleaner;
import org.apache.wicket.util.io.DeferredFileOutputStream;
import org.apache.wicket.util.io.IOUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* <p>
@@ -52,7 +54,7 @@ import org.apache.wicket.util.io.IOUtils
*/
public class DiskFileItem implements FileItem
{
-
+ private static final Logger log = LoggerFactory.getLogger(DiskFileItem.class);
private static final long serialVersionUID = 1L;
// ----------------------------------------------------- Manifest constants
@@ -126,7 +128,7 @@ public class DiskFileItem implements Fil
/**
* Output stream for this item.
*/
- private DeferredFileOutputStream dfos;
+ private transient DeferredFileOutputStream dfos;
// ----------------------------------------------------------- Constructors
@@ -367,7 +369,7 @@ public class DiskFileItem implements Fil
* @exception Exception
* if an error occurs.
*/
- public void write(File file) throws Exception
+ public void write(File file) throws IOException
{
if (isInMemory())
{
@@ -400,7 +402,7 @@ public class DiskFileItem implements Fil
in = new BufferedInputStream(new FileInputStream(outputFile));
out = new BufferedOutputStream(new FileOutputStream(file));
byte[] bytes = new byte[WRITE_BUFFER_SIZE];
- int s = 0;
+ int s;
while ((s = in.read(bytes)) != -1)
{
out.write(bytes, 0, s);
@@ -436,7 +438,8 @@ public class DiskFileItem implements Fil
File outputFile = getStoreLocation();
if (outputFile != null && outputFile.exists())
{
- outputFile.delete();
+ if(outputFile.delete())
+ log.debug("failed to delete file: " + outputFile.getAbsolutePath());
}
}
@@ -547,13 +550,16 @@ public class DiskFileItem implements Fil
* Removes the file contents from the temporary storage.
*/
@Override
- protected void finalize()
+ protected void finalize() throws Throwable
{
+ super.finalize(); // currently empty but there for safer refactoring
+
File outputFile = dfos.getFile();
if (outputFile != null && outputFile.exists())
{
- outputFile.delete();
+ if(outputFile.delete() == false)
+ log.debug("failed to delete file: " + outputFile.getAbsolutePath());
}
}
@@ -569,12 +575,12 @@ public class DiskFileItem implements Fil
protected File getTempFile()
{
File tempDir = repository;
+
if (tempDir == null)
{
- String systemTmp = null;
try
{
- systemTmp = System.getProperty("java.io.tmpdir");
+ tempDir = new File(System.getProperty("java.io.tmpdir"));
}
catch (SecurityException e)
{
@@ -582,7 +588,6 @@ public class DiskFileItem implements Fil
+ " for the current security settings. The repository location needs to be"
+ " set manually, or upgrade permissions to allow reading the tmpdir property.");
}
- tempDir = new File(systemTmp);
}
String fileName = "upload_" + getUniqueId() + ".tmp";
Modified: wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/FileItem.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/FileItem.java?rev=1040669&r1=1040668&r2=1040669&view=diff
==============================================================================
--- wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/FileItem.java (original)
+++ wicket/trunk/wicket-util/src/main/java/org/apache/wicket/util/upload/FileItem.java Tue Nov 30 18:13:12 2010
@@ -153,7 +153,7 @@ public interface FileItem extends IClust
* @exception Exception
* if an error occurs.
*/
- void write(File file) throws Exception;
+ void write(File file) throws IOException;
/**
Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java?rev=1040669&r1=1040668&r2=1040669&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/upload/FileUpload.java Tue Nov 30 18:13:12 2010
@@ -55,6 +55,7 @@ public class FileUpload implements IClus
*/
public FileUpload(final FileItem item)
{
+ Args.notNull(item, "item");
this.item = item;
}
@@ -217,7 +218,7 @@ public class FileUpload implements IClus
*/
public void writeTo(final File file) throws IOException
{
- writeTo(file, 4096);
+ item.write(file);
}
/**