can you add the license headers? :-) On Nov 28, 2007 4:14 PM, <[EMAIL PROTECTED]> wrote: > Author: mmarinschek > Date: Wed Nov 28 07:14:17 2007 > New Revision: 599022 > > URL: http://svn.apache.org/viewvc?rev=599022&view=rev > Log: > fix for https://issues.apache.org/jira/browse/TOMAHAWK-6 (TOMAHAWK-6): Thanks > to Alexander Jesse for helping me fixing this and testing the fix > > Added: > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/DiskStorageStrategy.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/StorageStrategy.java > Modified: > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlFileUploadRenderer.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlInputFileUpload.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFile.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultFileImpl.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultMemoryImpl.java > > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/webapp/filter/MultipartRequestWrapper.java > > Added: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/DiskStorageStrategy.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/DiskStorageStrategy.java?rev=599022&view=auto > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/DiskStorageStrategy.java > (added) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/DiskStorageStrategy.java > Wed Nov 28 07:14:17 2007 > @@ -0,0 +1,9 @@ > +package org.apache.myfaces.custom.fileupload; > + > +import java.io.File; > + > +public abstract class DiskStorageStrategy extends StorageStrategy { > + > + public abstract File getTempFile(); > + > +} > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlFileUploadRenderer.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlFileUploadRenderer.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlFileUploadRenderer.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlFileUploadRenderer.java > Wed Nov 28 07:14:17 2007 > @@ -31,6 +31,7 @@ > > import javax.faces.component.UIComponent; > import javax.faces.context.FacesContext; > +import javax.faces.FacesException; > import javax.faces.context.ResponseWriter; > import javax.faces.context.ExternalContext; > import javax.faces.convert.ConverterException; > @@ -126,7 +127,7 @@ > > ((HtmlInputFileUpload)uiComponent).setSubmittedValue(upFile); > ((HtmlInputFileUpload)uiComponent).setValid(true); > }catch(IOException ioe){ > - log.error(ioe); > + throw new FacesException("Exception while processing > file upload for file-input : " + uiComponent.getClientId(facesContext),ioe); > } > } > return; > @@ -165,7 +166,7 @@ > > ((HtmlInputFileUpload)uiComponent).setSubmittedValue(upFile); > ((HtmlInputFileUpload)uiComponent).setValid(true); > }catch(IOException ioe){ > - log.error(ioe); > + throw new FacesException("Exception while processing > file upload for file-input : " + uiComponent.getClientId(facesContext),ioe); > } > } > } > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlInputFileUpload.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlInputFileUpload.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlInputFileUpload.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/HtmlInputFileUpload.java > Wed Nov 28 07:14:17 2007 > @@ -20,8 +20,10 @@ > > import org.apache.myfaces.component.UserRoleAware; > import org.apache.myfaces.component.UserRoleUtils; > +import org.apache.myfaces.shared_tomahawk.util.MessageUtils; > import org.apache.myfaces.shared_tomahawk.util._ComponentUtils; > > +import javax.faces.application.FacesMessage; > import javax.faces.component.html.HtmlInputText; > import javax.faces.context.FacesContext; > import javax.faces.el.ValueBinding; > @@ -34,6 +36,9 @@ > extends HtmlInputText > implements UserRoleAware > { > + private static final String SIZE_LIMIT_EXCEEDED = "sizeLimitExceeded"; > + private static final String FILEUPLOAD_MAX_SIZE = > "org.apache.myfaces.custom.fileupload.maxSize"; > + private static final String FILEUPLOAD_EXCEPTION = > "org.apache.myfaces.custom.fileupload.exception"; > public static final String COMPONENT_TYPE = > "org.apache.myfaces.HtmlInputFileUpload"; > public static final String DEFAULT_RENDERER_TYPE = > "org.apache.myfaces.FileUpload"; > public static final String SIZE_LIMIT_MESSAGE_ID = > "org.apache.myfaces.FileUpload.SIZE_LIMIT"; > @@ -113,22 +118,29 @@ > return super.isRendered(); > } > > -// protected void validateValue(FacesContext context, Object > convertedValue) > -// { > -// super.validateValue(context, convertedValue); > -// if (isValid()) > -// { > -// UploadedFile file = (UploadedFile) convertedValue; > -// if(file != null && file.getSize() > getMaxlength()) > -// { > -// MessageUtils.addMessage(FacesMessage.SEVERITY_ERROR, > -// SIZE_LIMIT_MESSAGE_ID, new Object[] { getId(), > -// new Integer(getMaxlength()) }, > -// getClientId(context), context); > -// setValid(false); > -// } > -// } > -// } > + protected void validateValue(FacesContext context, Object convertedValue) > + { > + super.validateValue(context, convertedValue); > + > + if (isValid()) > + { > + String exception = > + (String) > context.getExternalContext().getRequestMap().get(FILEUPLOAD_EXCEPTION); > + > + if(exception != null && exception.equals(SIZE_LIMIT_EXCEEDED)) > { > + Integer maxSize = > + (Integer) > context.getExternalContext().getRequestMap().get(FILEUPLOAD_MAX_SIZE); > + MessageUtils.addMessage(FacesMessage.SEVERITY_ERROR, > + SIZE_LIMIT_MESSAGE_ID, new Object[] { getId(), > + maxSize}, > + getClientId(context), context); > + setValid(false); > + } > + else { > + throw new IllegalStateException("other exceptions not handled > yet."); > + } > + } > + } > > public Object saveState(FacesContext context) > { > > Added: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/StorageStrategy.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/StorageStrategy.java?rev=599022&view=auto > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/StorageStrategy.java > (added) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/StorageStrategy.java > Wed Nov 28 07:14:17 2007 > @@ -0,0 +1,6 @@ > +package org.apache.myfaces.custom.fileupload; > + > +public abstract class StorageStrategy { > + > + public abstract void deleteFileContents(); > +} > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFile.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFile.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFile.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFile.java > Wed Nov 28 07:14:17 2007 > @@ -50,21 +50,28 @@ > > > /** > - * @return Returns the _contentType. > + * @return Returns the contentType. > */ > String getContentType(); > > > > /** > - * @return Returns the _name. > + * @return Returns the name. > */ > String getName(); > > > /** > - * Answer the size of this file. > + * Returns the size of this file. > * @return long > */ > long getSize(); > + > + /**Allows to get more information/interact more with the file, depending > + * on where it is stored > + * > + * @return StorageStrategy the storage strategy of this file, > + */ > + StorageStrategy getStorageStrategy(); > } > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultFileImpl.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultFileImpl.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultFileImpl.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultFileImpl.java > Wed Nov 28 07:14:17 2007 > @@ -18,9 +18,11 @@ > */ > package org.apache.myfaces.custom.fileupload; > > +import org.apache.commons.fileupload.DefaultFileItem; > import org.apache.commons.fileupload.FileItem; > > import java.io.ByteArrayInputStream; > +import java.io.File; > import java.io.IOException; > import java.io.InputStream; > > @@ -32,20 +34,24 @@ > public class UploadedFileDefaultFileImpl extends UploadedFileDefaultImplBase > { > private static final long serialVersionUID = -6401426361519246443L; > - private transient FileItem fileItem = null; > + private transient DefaultFileItem fileItem = null; > + private StorageStrategy storageStrategy; > > - /* > - TODO/manolito: Do we need an empty constructor?! > - public UploadedFileDefaultFileImpl() > - { > - } > - */ > - > - > - public UploadedFileDefaultFileImpl(FileItem fileItem) throws IOException > + public UploadedFileDefaultFileImpl(final FileItem fileItem) throws > IOException > { > super(fileItem.getName(), fileItem.getContentType()); > - this.fileItem = fileItem; > + this.fileItem = (DefaultFileItem) fileItem; > + storageStrategy = new DiskStorageStrategy() { > + > + public File getTempFile() { > + return > UploadedFileDefaultFileImpl.this.fileItem.getStoreLocation(); > + } > + > + public void deleteFileContents() { > + UploadedFileDefaultFileImpl.this.fileItem.delete(); > + } > + > + }; > } > > > @@ -83,5 +89,10 @@ > public long getSize() > { > return fileItem != null ? fileItem.getSize() : 0; > + } > + > + > + public StorageStrategy getStorageStrategy() { > + return storageStrategy; > } > } > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultMemoryImpl.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultMemoryImpl.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultMemoryImpl.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/custom/fileupload/UploadedFileDefaultMemoryImpl.java > Wed Nov 28 07:14:17 2007 > @@ -33,22 +33,23 @@ > { > private static final long serialVersionUID = -6006333070975059090L; > private byte[] bytes; > + private StorageStrategy storageStrategy; > > > - public UploadedFileDefaultMemoryImpl(FileItem fileItem) throws > IOException > + public UploadedFileDefaultMemoryImpl(final FileItem fileItem) throws > IOException > { > super(fileItem.getName(), fileItem.getContentType()); > int sizeInBytes = (int)fileItem.getSize(); > bytes = new byte[sizeInBytes]; > fileItem.getInputStream().read(bytes); > + this.storageStrategy = new StorageStrategy() { > > - /* > - TODO/manolito: what was the reason for this if? > - if (bytes.length != 0) { > - _name = fileItem.getName(); > - _contentType = fileItem.getContentType(); > - } > - */ > + public void deleteFileContents() { > + fileItem.delete(); > + bytes = null; > + } > + > + }; > } > > > @@ -84,4 +85,11 @@ > return 0; > return bytes.length; > } > + > + > + public StorageStrategy getStorageStrategy() { > + return storageStrategy; > + } > + > + > } > > Modified: > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/webapp/filter/MultipartRequestWrapper.java > URL: > http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/webapp/filter/MultipartRequestWrapper.java?rev=599022&r1=599021&r2=599022&view=diff > ============================================================================== > --- > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/webapp/filter/MultipartRequestWrapper.java > (original) > +++ > myfaces/tomahawk/trunk/core/src/main/java/org/apache/myfaces/webapp/filter/MultipartRequestWrapper.java > Wed Nov 28 07:14:17 2007 > @@ -85,11 +85,11 @@ > requestParameters = fileUpload.parseRequest(request); > } catch (FileUploadBase.SizeLimitExceededException e) { > > - // TODO: find a way to notify the user about the fact that the > uploaded file exceeded size limit > - > - if(log.isInfoEnabled()) > - log.info("user tried to upload a file that exceeded > file-size limitations.",e); > - > + request.setAttribute( > + > "org.apache.myfaces.custom.fileupload.exception","sizeLimitExceeded"); > + > request.setAttribute("org.apache.myfaces.custom.fileupload.maxSize", > + new Integer(maxSize)); > + > requestParameters = Collections.EMPTY_LIST; > > }catch(FileUploadException fue){ > > >
-- Matthias Wessendorf further stuff: blog: http://matthiaswessendorf.wordpress.com/ sessions: http://www.slideshare.net/mwessendorf mail: matzew-at-apache-dot-org
