[
https://issues.apache.org/jira/browse/ADFFACES-313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Matthias Weßendorf updated ADFFACES-313:
----------------------------------------
Affects Version/s: 1.0.1-incubating-core-SNAPSHOT
> Improve Upload behaviour
> ------------------------
>
> Key: ADFFACES-313
> URL: https://issues.apache.org/jira/browse/ADFFACES-313
> Project: MyFaces ADF-Faces
> Issue Type: Improvement
> Affects Versions: 1.0.1-incubating-core-SNAPSHOT
> 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.
-
You can reply to this email to add a comment to the issue online.