Title: [1355] trunk/web/web-io/src/main/java/org/jbehave/web/io: JBEHAVE-195: ensure uploaded file name does not contain the full path.
Revision
1355
Author
mauro
Date
2009-10-19 17:10:22 -0500 (Mon, 19 Oct 2009)

Log Message

JBEHAVE-195:  ensure uploaded file name does not contain the full path.

Modified Paths

Diff

Modified: trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java (1354 => 1355)

--- trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java	2009-10-17 21:14:23 UTC (rev 1354)
+++ trunk/web/web-io/src/main/java/org/jbehave/web/io/ArchivingFileManager.java	2009-10-19 22:10:22 UTC (rev 1355)
@@ -84,6 +84,7 @@
 			try {
 				File file = writeItemToFile(directory, item);
 				files.add(file);
+				monitor.fileUploaded(file);
 				if (archiver.isArchive(file)) {
 					try {
 						archiver.unarchive(file, directory);
@@ -102,6 +103,7 @@
 				if (e.getCause() != null) {
 					errors.add(e.getCause().getMessage());
 				}
+				monitor.fileUploadFailed(item, e);
 			}
 		}
 		return files;
@@ -111,7 +113,7 @@
 		if (isBlank(item.getName())) {
 			throw new FileItemNameMissingException(item);
 		}
-		File file = new File(directory, item.getName());
+		File file = new File(directory, fileName(item));
 		try {
 			if (file.exists()) {
 				file.createNewFile();
@@ -123,6 +125,11 @@
 		return file;
 	}
 
+	private String fileName(FileItem item) {
+		File file = new File(item.getName());
+		return file.getName();
+	}
+
 	@SuppressWarnings("serial")
 	public static final class FileItemNameMissingException extends
 			RuntimeException {

Modified: trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java (1354 => 1355)

--- trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java	2009-10-17 21:14:23 UTC (rev 1354)
+++ trunk/web/web-io/src/main/java/org/jbehave/web/io/FileMonitor.java	2009-10-19 22:10:22 UTC (rev 1355)
@@ -3,6 +3,8 @@
 import java.io.File;
 import java.util.List;
 
+import org.apache.commons.fileupload.FileItem;
+
 public interface FileMonitor {
 	
 	void contentListed(String path, File directory,
@@ -10,6 +12,10 @@
 
 	void filesListed(File uploadDirectory, List<File> files);
 
+	void fileUploaded(File file);
+
+	void fileUploadFailed(FileItem item, Exception cause);
+
 	void fileUnarchived(File file, File directory);
 
 	void fileDeleted(File file);

Modified: trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java (1354 => 1355)

--- trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java	2009-10-17 21:14:23 UTC (rev 1354)
+++ trunk/web/web-io/src/main/java/org/jbehave/web/io/PrintStreamFileMonitor.java	2009-10-19 22:10:22 UTC (rev 1355)
@@ -4,6 +4,8 @@
 import java.io.PrintStream;
 import java.util.List;
 
+import org.apache.commons.fileupload.FileItem;
+
 public class PrintStreamFileMonitor implements FileMonitor {
 
 	private final PrintStream output;
@@ -20,6 +22,11 @@
 		output.println(message);
 	}
 
+	protected void print(PrintStream output, String message, Exception cause) {
+		output.println(message);
+		cause.printStackTrace(output);		
+	}
+
 	public void contentListed(String path, File directory,
 			boolean relativePaths, List<File> content) {
 		print(output, "Listed content of path " + path + " from directory "
@@ -35,6 +42,14 @@
 		print(output, "Unarchived file " + file + " to directory " + directory);
 	}
 
+	public void fileUploaded(File file) {
+		print(output, "Uploaded file " + file);
+	}
+	
+	public void fileUploadFailed(FileItem item, Exception cause) {
+		print(output, "File upload of " + item +" failed: ", cause);
+	}
+
 	public void filesListed(File uploadDirectory, List<File> files) {
 		print(output, "Listed files from upload directory " + uploadDirectory
 				+ ": " + files);


To unsubscribe from this list please visit:

http://xircles.codehaus.org/manage_email

Reply via email to