I am using fileupload to parse attachments.
I used the standard html <input type=”file” … > tag in my form.
Everything works great on IE and Firefox, but when the request comes from Safari, it fails almost all of the time. It is not always predictable when it will work but most often it works for the first attempt after restarting the server's JVM. The server is running Java 5 in Websphere 5.1. I am using fileupload 1.2 and commons-io 1.3.2 I have attached copies of the http logs from when it works and when it fails. As you can see, it looks like the client stops sending the http request because the attempt to read the request times out. On the server side, I see a SocketException...

This problem occurs regardless of file size and even if Safari is told to report itself as firefox. This problem has not once occurred with any of IE 5,6 or 7 or Firefox 1.* and 2.* Firefox on mac works great too.
I get this result with Safari 2 and 3 Beta - including the windows Beta.

I do NOT think this is a problem with FileUpload but I was wondering if someone had seen this before and could point me towards a solution.

Thanks

Raymond
[12/5/07 6:44:27:024 CST] 16fbd16d HttpRequest   d getHeader

                                 Content-Type

                                 multipart/form-data; 
boundary=----WebKitFormBoundaryEV+O2YLFqxXhdl1G

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   > getInputStream

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   d getHeader

                                 Transfer-Encoding

                                 <null>

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   d getHeader

                                 Content-Length

                                 142633

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   d getContentLength

                                 142633

[12/5/07 6:44:27:148 CST] 16fbd16d ContentLength d init

                                 142633

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   d Using 
ContentLengthInputStream

[12/5/07 6:44:27:148 CST] 16fbd16d HttpRequest   < getInputStream

[12/5/07 6:44:27:148 CST] 16fbd16d ContentLength > read

                                 0

                                 8192

[12/5/07 6:44:27:167 CST] 16fbd16d ContentLength < read

                                 2920

[12/5/07 6:44:27:167 CST] 16fbd16d HttpRequest   > getInputStream

[12/5/07 6:44:27:167 CST] 16fbd16d HttpRequest   < getInputStream

[12/5/07 6:44:27:167 CST] 16fbd16d ContentLength > read

                                 0

                                 8192

[12/5/07 6:44:27:374 CST] 16fbd16d ContentLength < read

                                 5840

[12/5/07 6:44:27:374 CST] 16fbd16d HttpRequest   > getInputStream

[12/5/07 6:44:27:374 CST] 16fbd16d HttpRequest   < getInputStream

[12/5/07 6:44:27:374 CST] 16fbd16d ContentLength > read

                                 0

                                 8192

[12/5/07 6:45:01:943 CST] 1e07d16d SessionContex > SessionAlarmListener.alarm
[12/5/07 6:41:22:091 CST] 49d5916d HttpRequest   d getHeader

                                 Content-Type

                                 multipart/form-data; 
boundary=----WebKitFormBoundarygV+eWXZKy07vZJbq

[12/5/07 6:41:22:646 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   d getHeader

                                 Transfer-Encoding

                                 <null>

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   d getHeader

                                 Content-Length

                                 142633

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   d getContentLength

                                 142633

[12/5/07 6:41:22:647 CST] 49d5916d ContentLength d init

                                 142633

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   d Using 
ContentLengthInputStream

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:647 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:647 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:647 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:647 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:647 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:648 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:649 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:650 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:651 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength < read

                                 8192

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength < read

                                 3369

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   > getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d HttpRequest   < getInputStream

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength > read

                                 0

                                 8192

[12/5/07 6:41:22:652 CST] 49d5916d ContentLength < read

                                 -1

[12/5/07 6:41:22:653 CST] 49d5916d HttpInputStre > close

[12/5/07 6:41:22:653 CST] 49d5916d HttpInputStre > finish

[12/5/07 6:41:22:653 CST] 49d5916d HttpInputStre < finish

[12/5/07 6:41:22:653 CST] 49d5916d HttpInputStre < close
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to