incubator-adffaces-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Huber (JIRA)" <adffaces-iss...@incubator.apache.org>
Subject [jira] Created: (ADFFACES-313) Improve Upload behaviour
Date Fri, 01 Dec 2006 11:59:21 GMT
Improve Upload behaviour
------------------------

                 Key: ADFFACES-313
                 URL: http://issues.apache.org/jira/browse/ADFFACES-313
             Project: MyFaces ADF-Faces
          Issue Type: Improvement
         Environment: All, commons-upload
            Reporter: Patrick Huber



Trinidad/commons-upload assume some memory and space limits for uploads which can be configured
in /WEB-INF/web.xml:
-----------
<context-param>
    <param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_MEMORY</param-name>
    <param-value>512000</param-value>
</context-param>
    
<context-param>
    <param-name>org.apache.myfaces.trinidad.UPLOAD_MAX_DISK_SPACE</param-name>
    <param-value>5120000</param-value>
</context-param>
-----------

When the larger of these two values is exceeded, trinidad just trows an EOFException. What
the user sees in the browser is this:
----------
HTTP ERROR: 500

Per-request disk space limits exceeded.

RequestURI=/apache_trinidad/upload.faces
Caused by:

java.io.EOFException: Per-request disk space limits exceeded.
	at org.apache.myfaces.trinidadinternal.webapp.UploadedFileImpl.loadFile(UploadedFileImpl.java:236)
	at org.apache.myfaces.trinidadinternal.webapp.UploadedFileProcessorImpl.processFile(UploadedFileProcessorImpl.java:106)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doUploadFile(TrinidadFilterImpl.java:342)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:254)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:90)
	at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1040)
	at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:352)
	at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:230)
	at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:627)
	at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:149)
	at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:123)
	at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:141)
	at org.mortbay.jetty.Server.handle(Server.java:286)
	at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:444)
	at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:715)
	at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:627)
	at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:203)
	at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:340)
	at org.mortbay.jetty.nio.HttpChannelEndPoint.run(HttpChannelEndPoint.java:270)
	at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)

Powered by Jetty://
----------

It is possible to add a "validator" attribute to a tr:inputFile component. However, that validator
is only invoked when the upload size is smaller than the limits and the upload succeeds. I
believe these limits really do make sense but a 500 plus stacktrace is not very cool. I propose
that trinidad writes a FacesMessage to the FacesContext for the inputFile component and re-renders
the same page, so the user sees the normal page again with a meaningful error message. The
error message should be configurable/localizable.

I don't know much about uploading things. Maybe it's also possible to determine the upload
size before having received any data and then invoke the validator before receiving the data,
so the developer could for example apply different size limits based on the mime-type of the
upload. The inputFile component had to be extended to contain the same information as the
valueChangeListener of the inputFile component received on its invocation.

regards
Patrick

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message