Grails - Исключение при остановке/отмене загрузки

У меня есть очень простое действие загрузки в моем контроллере. Это смотрит что-то как действие ниже. Это работает отлично. Единственная проблема, которую я вижу, состоит в том, когда пользователь отменяет загрузку (или поражает остановку в их браузер). Я могу восстановиться правильно, но не прежде, чем видеть неперехваченное исключение в моих журналах. Исключение упоминается ниже. Любая справка или обратная связь о том, как правильно поймать неперехваченное исключение здесь, ценились бы. Кажется, что это происходит где-нибудь между клиентом и действием контроллера, так как исключение отображается, но ни одно из сообщений журнала в действии не обнаруживается.

def upload = {
    def f = null
    try {
        f = request.getFile('assetFile')
        if(!f || f.empty) {
            log.warn "File is empty"
            render(view:'upload')
            return
        }
    } catch (Exception e) {
        log.warn "Caught exception:", e
        render(view:'upload')
        return
    }
}

Исключение:

 2010-08-06 15:33:22,826 ERROR [TP-Processor8] filter.UrlMappingsFilter - Error when matching URL mapping [/(*)/(*)?/(*)?]:Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
    org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.jsecurity.web.servlet.JSecurityFilter.doFilterInternal(JSecurityFilter.java:384)
            at org.jsecurity.web.servlet.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:183)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
            at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:200)
            at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
            at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:775)
            at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:704)
            at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:897)
            at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
            at java.lang.Thread.run(Thread.java:619)
    Caused by: org.apache.commons.fileupload.FileUploadBase$IOFileUploadException: Processing of multipart/form-data request failed. Stream ended unexpectedly
            at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:367)
            at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
            ... 25 more
    Caused by: org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream ended unexpectedly
            at org.apache.commons.fileupload.MultipartStream$ItemInputStream.makeAvailable(MultipartStream.java:983)
            at org.apache.commons.fileupload.MultipartStream$ItemInputStream.read(MultipartStream.java:887)
            at java.io.InputStream.read(InputStream.java:85)
            at org.apache.commons.fileupload.util.Streams.copy(Streams.java:94)
            at org.apache.commons.fileupload.util.Streams.copy(Streams.java:64)
            at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:362)
            ... 26 more 
5
задан user415217 9 August 2010 в 15:03
поделиться