[ 
https://issues.apache.org/jira/browse/FILEUPLOAD-143?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12519472
 ] 

Luke Scott commented on FILEUPLOAD-143:
---------------------------------------

Finnally figured out how to get a stack trace. Here it is:

org.apache.commons.fileupload.FileUploadException: Stream ended unexpectedly
        at 
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:369)
        at 
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:84)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:285)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765)
        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:357)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
        at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)
Caused by:
org.apache.commons.fileupload.MultipartStream$MalformedStreamException: Stream 
ended unexpectedly
        at 
org.apache.commons.fileupload.MultipartStream.readHeaders(MultipartStream.java:542)
        at 
org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.findNextItem(FileUploadBase.java:859)
        at 
org.apache.commons.fileupload.FileUploadBase$FileItemIteratorImpl.hasNext(FileUploadBase.java:916)
        at 
org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:348)
        at 
org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:84)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:384)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at 
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:491)
        at 
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:367)
        at 
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:185)
        at 
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at 
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:689)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:391)
        at 
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:146)
        at 
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at 
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:285)
        at 
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:457)
        at 
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:765)
        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:357)
        at 
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:329)
        at 
org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:475)


> "Stream ended unexpectedly"
> ---------------------------
>
>                 Key: FILEUPLOAD-143
>                 URL: https://issues.apache.org/jira/browse/FILEUPLOAD-143
>             Project: Commons FileUpload
>          Issue Type: Bug
>    Affects Versions: 1.2
>         Environment: CentOS 4.4, Jetty running through Red5 (form of Flash 
> Media Server), code under JSP
>            Reporter: Luke Scott
>
> I setup an upload script under a JSP. I tested it by uploading a file via 
> html form upload and it worked fine - the file was received.
> But when I tried uploading the file through a flash interface using the 
> FileReference object I got a 500 error response. Flash's FileReference API 
> was very vague, and I was unable to reproduce the error under another 
> interface so I could see the error.... But I finnally did get something back 
> by writing a catch and writing the error to a file. I don't know if this is 
> accurate or not:
> "Stream ended unexpectedly"
> I do know that the error occurs when this line is ran:
> List items = upload.parseRequest(request);
> And here is some relevant code, but not all of it: (to show that I do have a 
> factory set):
> DiskFileItemFactory factory = new DiskFileItemFactory();
> factory.setSizeThreshold(524288000);
> ServletFileUpload upload = new ServletFileUpload(factory);
> upload.setSizeMax(524288000);
> List items = upload.parseRequest(request);
> I am fairly sure that flash is doing something that is throwing 
> commons-fileupload off. But it does work with apache & php...
> The biggest difference in the headers, or at least the initial headers, is 
> flash passes a "connection: close" header.
> When searching I came up with some vague answers. This page shows some 
> comments at the bottom by users with similar problems:
> http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00002225.html
> One guy posts a solution to fix the problem, but it seems like it is severely 
> out of date because where it says "return items;" I do not see items declared 
> in the function of the line he mentions. Plus he mentions line 336, and it's 
> now on 800 something. Tried his suggestion but instead returned "true" and 
> "false" (tried both ways) but it didn't work... Also when I tried his catch 
> line ant said it was invalid, so I had to put "Exception e" instead. You may 
> notice that his post is in all caps (posts after his appear to be for some 
> reason). I did make sure to use the proper case (i do know of case 
> sensitivity).
> With further reading I read instances where flash did a "test upload" without 
> sending the file. In other cases I read something about it not sending to 
> blank lines after the header. Not sure what my current problem is.... I'm 
> sure once the problem is found, it should be fairly trivial to fix (i hope).
> Even though it may be flash's fault, it works in PHP and other instances... 
> So it should work here :)
> Thanks in advance,
> -Luke

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to