You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ma...@apache.org on 2008/04/16 11:42:11 UTC
svn commit: r648649 - in /myfaces/trinidad/trunk_1.2.x:
trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/
trinidad-impl/src/main/java/org/apache/myfaces/trini...
Author: matzew
Date: Wed Apr 16 02:42:10 2008
New Revision: 648649
URL: http://svn.apache.org/viewvc?rev=648649&view=rev
Log:
TRINIDAD-607
keeping the upload mechanism almost as is, but returning an ErrorFile when EOF has been thrown.
In Phase3 of JSF lifecycle we throw Converter Exception and place a FacesMessage to signal that
something was wrong with the upload
Added:
myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/ErrorFile.java
Modified:
myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/MessageBundle.xrts
myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java
myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputFileRenderer.java
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/MessageBundle.xrts
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/MessageBundle.xrts?rev=648649&r1=648648&r2=648649&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/MessageBundle.xrts (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-api/src/main/xrts/org/apache/myfaces/trinidad/resource/MessageBundle.xrts Wed Apr 16 02:42:10 2008
@@ -70,6 +70,10 @@
<resource key="org.apache.myfaces.trinidad.UIXEditableValue.CONVERSION">Conversion Failed</resource>
<resource key="org.apache.myfaces.trinidad.UIXEditableValue.CONVERSION_detail">Enter a value like {2}.</resource>
+ <!-- Upload ConversionException messages -->
+ <resource key="org.apache.myfaces.trinidad.UPLOAD">File too large</resource>
+ <resource key="org.apache.myfaces.trinidad.UPLOAD_detail">The size of the uploaded file was too large. Please contact the system administrator.</resource>
+
<!-- hints for validators -->
<resource key="org.apache.myfaces.trinidad.validator.RangeValidator.MAXIMUM_HINT">Enter a value less than or equal to {0}.</resource>
<resource key="org.apache.myfaces.trinidad.validator.RangeValidator.MINIMUM_HINT">Enter a value greater than or equal to {0}.</resource>
Added: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/ErrorFile.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/ErrorFile.java?rev=648649&view=auto
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/ErrorFile.java (added)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/ErrorFile.java Wed Apr 16 02:42:10 2008
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.trinidadinternal.config.upload;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.myfaces.trinidad.model.UploadedFile;
+
+public class ErrorFile implements UploadedFile
+{
+
+ public void dispose()
+ {
+ }
+
+ public String getContentType()
+ {
+ return null;
+ }
+
+ public String getFilename()
+ {
+ return null;
+ }
+
+ public InputStream getInputStream() throws IOException
+ {
+ return null;
+ }
+
+ public long getLength()
+ {
+ return -1;
+ }
+
+ public Object getOpaqueData()
+ {
+ return null;
+ }
+}
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java?rev=648649&r1=648648&r2=648649&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/config/upload/UploadedFileProcessorImpl.java Wed Apr 16 02:42:10 2008
@@ -124,10 +124,18 @@
// Process one new file, loading only as much as can fit
// in the remaining memory and disk space.
UploadedFileImpl file = new UploadedFileImpl();
- file.loadFile(tempFile,
- _maxMemory - info.totalBytesInMemory,
- _maxDiskSpace - info.totalBytesOnDisk,
- _tempDir);
+ try
+ {
+ file.loadFile(tempFile,
+ _maxMemory - info.totalBytesInMemory,
+ _maxDiskSpace - info.totalBytesOnDisk,
+ _tempDir);
+ }
+ catch(IOException ioe)
+ {
+ _LOG.severe(ioe);
+ return new ErrorFile();
+ }
// Keep a tally of how much we've stored in memory and on disk.
long length = file.getLength();
Modified: myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputFileRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputFileRenderer.java?rev=648649&r1=648648&r2=648649&view=diff
==============================================================================
--- myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputFileRenderer.java (original)
+++ myfaces/trinidad/trunk_1.2.x/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/SimpleInputFileRenderer.java Wed Apr 16 02:42:10 2008
@@ -19,8 +19,10 @@
package org.apache.myfaces.trinidadinternal.renderkit.core.xhtml;
+import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import javax.faces.convert.ConverterException;
import org.apache.myfaces.trinidad.bean.FacesBean;
@@ -28,6 +30,7 @@
import org.apache.myfaces.trinidad.context.RenderingContext;
import org.apache.myfaces.trinidad.model.UploadedFile;
+import org.apache.myfaces.trinidad.util.MessageFactory;
import org.apache.myfaces.trinidadinternal.config.upload.UploadedFiles;
/**
@@ -87,6 +90,12 @@
if (submittedValue == Boolean.FALSE)
return null;
+ UploadedFile file = (UploadedFile) submittedValue;
+ if(file.getLength() == -1)
+ {
+ FacesMessage fm = MessageFactory.getMessage(context, "org.apache.myfaces.trinidad.UPLOAD");
+ throw new ConverterException(fm);
+ }
return submittedValue;
}
@@ -168,4 +177,4 @@
{
return null;
}
-}
\ No newline at end of file
+}