- 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:
