sure, done - sorry. regards,
Martin On 11/28/07, Matthias Wessendorf <[EMAIL PROTECTED]> wrote: > 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 > -- http://www.irian.at Your JSF powerhouse - JSF Consulting, Development and Courses in English and German Professional Support for Apache MyFaces
