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
+}