You are viewing a plain text version of this content. The canonical link for it is here.
Posted to httpclient-users@hc.apache.org by Paul Risenhoover <pr...@daxsolutions.com> on 2006/08/07 17:53:18 UTC

HttpClient and Large File (>2GB) Support

Greetings all,

I have searched the web and browsed the mailing list archives for a 
solution to my problem but have been unable to find anything 
substantial.  I'm hoping somebody here might point me in the right 
direction.

The problem I'm having is with large files (>2Gb).  The HttpClient 
package simply doesn't seem to want to accept them.  I've got a 
servlet/applet comination in which the applet sends file to the servlet, 
and when I try to send a file over 2GB, I get the exception trace that 
you can see at the bottom of this page.  It works perfectly for files 
under 2GB.

Has anybody else seen this problem?  Any thoughts on how to resolve it?

Thanks,
Paul


2006-08-07 08:50:38,380 DEBUG  (MediaBatchUploadControl.java:670) 
ioexception - user may have lost connectivity.
java.io.IOException: Corrupt form data: premature ending
        at 
com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
        at 
com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:119)
... <snip>
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
        at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
        at 
org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
        at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:138)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
        at 
org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
        at 
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
        at 
org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run()V(Unknown Source)


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Re: HttpClient and Large File (>2GB) Support

Posted by Paul Risenhoover <pr...@daxsolutions.com>.

Hi Roland,

I'm happy to say that the information you provided was enough to allow 
me to find the problem.  As you guessed, the issue was with the 
Content-Length header, and settting it to a value under 2^32 was the 
solution.

Thanks,
Paul

Roland Weber wrote:

>Hi Paul,
>
>  
>
>>Ok.  I'll try that.  But I guess the question remains, if this isn't a
>>problem with the client side, is there a way to find the root cause of
>>the problem and fix it on the server side?
>>    
>>
>
>The root cause is that the designers of the Java language decided to
>provide only signed integers, not unsigned ones. It is quite common
>to use the faster 'int' rather than 'long' variables for counters,
>and if the counter goes beyond 2 GB, you run into problems.
>By removing the Content-Length header, you are removing one possible
>cause of a problem that can even be found in the Servlet API:
>http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletRequest.html#getContentLength()
>Notice that the return value is an int, not a long?
>
>Of course you can file a bug report against the server software,
>but I wouldn't count on getting it fixed if removing the header
>is a suitable workaround. If sending the data without the length
>still causes an exception, then you'd have to push the issue.
>
>cheers,
>  Roland
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
>  
>


-- 
Paul Risenhoover - Director of Engineering - DAX Solutions, Inc. - 310-478-6644
____
This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.


Re: HttpClient and Large File (>2GB) Support

Posted by Roland Weber <ht...@dubioso.net>.
Hi Paul,

> Ok.  I'll try that.  But I guess the question remains, if this isn't a
> problem with the client side, is there a way to find the root cause of
> the problem and fix it on the server side?

The root cause is that the designers of the Java language decided to
provide only signed integers, not unsigned ones. It is quite common
to use the faster 'int' rather than 'long' variables for counters,
and if the counter goes beyond 2 GB, you run into problems.
By removing the Content-Length header, you are removing one possible
cause of a problem that can even be found in the Servlet API:
http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletRequest.html#getContentLength()
Notice that the return value is an int, not a long?

Of course you can file a bug report against the server software,
but I wouldn't count on getting it fixed if removing the header
is a suitable workaround. If sending the data without the length
still causes an exception, then you'd have to push the issue.

cheers,
  Roland


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Re: HttpClient and Large File (>2GB) Support

Posted by Paul Risenhoover <pr...@daxsolutions.com>.
Ok.  I'll try that.  But I guess the question remains, if this isn't a 
problem with the client side, is there a way to find the root cause of 
the problem and fix it on the server side? 


Roland Weber wrote:

>Hi Paul,
>
>  
>
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "POST
>>/AppWeb/MediaBatchUploadControl HTTP/1.1[\r][\n]"
>>2006/08/07 11:37:18:598 PDT [DEBUG] HttpMethodBase - Adding Host request
>>header
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "User-Agent: Jakarta
>>Commons-HttpClient/3.1-alpha1[\r][\n]"
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Host:
>>test.xxxx.com[\r][\n]"
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Length:
>>3102473741[\r][\n]"
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Type:
>>multipart/form-data;
>>boundary=----------------314159265358979323846[\r][\n]"
>>2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "[\r][\n]"
>>    
>>
>
>This does not look like a problem on the client side. As you can see,
>the Content-Length header has a positive value over 2GB. However, a
>server may be caught off guard by such a value.
>
>In your place, I would get rid of the Content-Length header field
>to avoid this problem. Derive a class from MultiPartRequestEntity
>and override getContentLength() to return -1, that should do the
>trick.
>http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.html#getContentLength()
>
>
>hope that helps,
>  Roland
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
>  
>


-- 
Paul Risenhoover - Director of Engineering - DAX Solutions, Inc. - 310-478-6644
____
This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.


Re: HttpClient and Large File (>2GB) Support

Posted by Roland Weber <ht...@dubioso.net>.
Hi Paul,

> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "POST
> /AppWeb/MediaBatchUploadControl HTTP/1.1[\r][\n]"
> 2006/08/07 11:37:18:598 PDT [DEBUG] HttpMethodBase - Adding Host request
> header
> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "User-Agent: Jakarta
> Commons-HttpClient/3.1-alpha1[\r][\n]"
> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Host:
> test.xxxx.com[\r][\n]"
> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Length:
> 3102473741[\r][\n]"
> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Type:
> multipart/form-data;
> boundary=----------------314159265358979323846[\r][\n]"
> 2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "[\r][\n]"

This does not look like a problem on the client side. As you can see,
the Content-Length header has a positive value over 2GB. However, a
server may be caught off guard by such a value.

In your place, I would get rid of the Content-Length header field
to avoid this problem. Derive a class from MultiPartRequestEntity
and override getContentLength() to return -1, that should do the
trick.
http://jakarta.apache.org/commons/httpclient/apidocs/org/apache/commons/httpclient/methods/multipart/MultipartRequestEntity.html#getContentLength()


hope that helps,
  Roland

---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Re: HttpClient and Large File (>2GB) Support

Posted by Paul Risenhoover <pr...@daxsolutions.com>.
Here's a header wire and context log of the transaction.  Any advice 
would be helpful.

Thanks,
Paul


thread applet-UploadManager.class: 08/07/06 11:37:00-v 1.0.53 (wpr)
thread applet-UploadManager.class: 08/07/06 11:37:00-DEBUG: encrypted 
authcess ticket is xxxx
thread applet-UploadManager.class: 08/07/06 11:37:00-DEBUG: using 
parameter supplied host (test.yyy.com)
thread applet-UploadManager.class: 08/07/06 11:37:00-DEBUG: port: null
thread applet-UploadManager.class: 08/07/06 11:37:00-DEBUG: using 
default port (80)
thread applet-UploadManager.class: 08/07/06 11:37:00-proxy host:
thread applet-UploadManager.class: 08/07/06 11:37:00-proxy port: 80
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Java version: 1.5.0_07
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Java vendor: Sun 
Microsystems Inc.
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Java class path: 
C:\Documents and Settings\pauly\workspace\UploadManager\bin;C:\Documents 
and 
Settings\pauly\workspace\DAXAppWeb\WebContent\WEB-INF\lib\commons-logging-1.0.4.jar
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Operating system name: 
Windows 2003
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Operating system 
architecture: x86
2006/08/07 11:37:01:036 PDT [DEBUG] HttpClient - Operating system 
version: 5.2
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SUN 1.5: SUN (DSA 
key/parameter generation; DSA signing; SHA-1, MD5 digests; SecureRandom; 
X.509 certificates; JKS keystore; PKIX CertPathValidator; PKIX 
CertPathBuilder; LDAP, Collection CertStores)
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SunRsaSign 1.5: Sun RSA 
signature provider
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SunJSSE 1.5: Sun JSSE 
provider(PKCS12, SunX509 key/trust factories, SSLv3, TLSv1)
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SunJCE 1.5: SunJCE 
Provider (implements RSA, DES, Triple DES, AES, Blowfish, ARCFOUR, RC2, 
PBE, Diffie-Hellman, HMAC)
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SunJGSS 1.0: Sun 
(Kerberos v5)
2006/08/07 11:37:01:161 PDT [DEBUG] HttpClient - SunSASL 1.5: Sun SASL 
provider(implements client mechanisms for: DIGEST-MD5, GSSAPI, EXTERNAL, 
PLAIN, CRAM-MD5; server mechanisms for: DIGEST-MD5, GSSAPI, CRAM-MD5)
2006/08/07 11:37:01:161 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.useragent = Jakarta Commons-HttpClient/3.1-alpha1
2006/08/07 11:37:01:161 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.version = HTTP/1.1
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.connection-manager.class = class 
org.apache.commons.httpclient.SimpleHttpConnectionManager
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.cookie-policy = default
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.element-charset = US-ASCII
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.content-charset = ISO-8859-1
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.method.retry-handler = 
org.apache.commons.httpclient.DefaultHttpMethodRetryHandler@54c4ad
2006/08/07 11:37:01:176 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.dateparser.patterns = [EEE, dd MMM yyyy HH:mm:ss zzz, EEEE, 
dd-MMM-yy HH:mm:ss zzz, EEE MMM d HH:mm:ss yyyy, EEE, dd-MMM-yyyy 
HH:mm:ss z, EEE, dd-MMM-yyyy HH-mm-ss z, EEE, dd MMM yy HH:mm:ss z, EEE 
dd-MMM-yyyy HH:mm:ss z, EEE dd MMM yyyy HH:mm:ss z, EEE dd-MMM-yyyy 
HH-mm-ss z, EEE dd-MMM-yy HH:mm:ss z, EEE dd MMM yy HH:mm:ss z, 
EEE,dd-MMM-yy HH:mm:ss z, EEE,dd-MMM-yyyy HH:mm:ss z, EEE, dd-MM-yyyy 
HH:mm:ss z]
2006/08/07 11:37:01:254 PDT [DEBUG] HttpConnection - Open connection to 
test.yyy.com:80
2006/08/07 11:37:01:348 PDT [DEBUG] header - >> "GET 
/AppWeb/MediaBatchUploadControl?getProjectsForUser=xxx&categoriesOnlyForProject=2 
HTTP/1.1[\r][\n]"
2006/08/07 11:37:01:348 PDT [DEBUG] HttpMethodBase - Adding Host request 
header
2006/08/07 11:37:01:364 PDT [DEBUG] header - >> "User-Agent: Jakarta 
Commons-HttpClient/3.1-alpha1[\r][\n]"
2006/08/07 11:37:01:364 PDT [DEBUG] header - >> "Host: test.xxx.com[\r][\n]"
2006/08/07 11:37:01:364 PDT [DEBUG] header - >> "[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "HTTP/1.1 200 OK[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Date: Mon, 07 Aug 2006 
18:37:59 GMT[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Server: Apache/2.2.2 
(Unix) mod_ssl/2.2.2 OpenSSL/0.9.7f mod_jk/1.2.15 mod_perl/2.0.2 
Perl/v5.8.6[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "X-Powered-By: Servlet 
2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 
date=200510231054)/Tomcat-5.5[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Set-Cookie: 
JSESSIONID=DxnyR-nr3v2qtD91aYidaQ**; Path=/[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Content-Type: 
text/plain[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Transfer-Encoding: 
chunked[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Connection: 
Keep-alive[\r][\n]"
2006/08/07 11:37:01:426 PDT [DEBUG] header - << "Via: 1.1 
AN-0003011011165420[\r][\n]"
2006/08/07 11:37:01:473 PDT [DEBUG] HttpMethodBase - Cookie accepted: 
"$Version=0; JSESSIONID=DxnyR-nr3v2qtD91aYidaQ**; $Path=/"
thread applet-UploadManager.class: 08/07/06 11:37:01-Found 6 categories
FIFOQueue: adding C:\Documents and Settings\pauly\Desktop\rad.rar
AWT-EventQueue-1: 08/07/06 11:37:16-Connection is: null
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.connection.timeout = 30000
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.unambiguous-statusline = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.single-cookie-header = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.strict-transfer-encoding = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.reject-head-body = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.warn-extra-input = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.status-line-garbage-limit = 0
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.reject-relative-redirect = true
2006/08/07 11:37:16:817 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.allow-circular-redirects = true
AWT-EventQueue-1: 08/07/06 11:37:16-user requested upload or restart upload.
Thread-3: 08/07/06 11:37:16-total threads: 1 now
FIFOQueue: getNext C:\Documents and Settings\pauly\Desktop\rad.rar
Thread-3: 08/07/06 11:37:16-Retrieved rad.rar from queue
Thread-3: 08/07/06 11:37:16-There are 0 files left in queue
2006/08/07 11:37:16:911 PDT [WARN] SimpleHttpConnectionManager - 
SimpleHttpConnectionManager being used incorrectly.  Be sure that 
HttpMethod.releaseConnection() is always called and that only one thread 
and/or method is using this connection manager at a time.
2006/08/07 11:37:16:911 PDT [DEBUG] HttpConnection - Open connection to 
test.xxxx.com:80
2006/08/07 11:37:16:926 PDT [DEBUG] header - >> "GET 
/AppWeb/MediaBatchUploadControl?fileKey=sk7LGgi48bAIvg8i4h784g%3D%3D 
HTTP/1.1[\r][\n]"
2006/08/07 11:37:16:926 PDT [DEBUG] HttpMethodBase - Adding Host request 
header
2006/08/07 11:37:16:926 PDT [DEBUG] header - >> "User-Agent: Jakarta 
Commons-HttpClient/3.1-alpha1[\r][\n]"
2006/08/07 11:37:16:926 PDT [DEBUG] header - >> "Host: test.xxx.com[\r][\n]"
2006/08/07 11:37:16:926 PDT [DEBUG] header - >> "[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "HTTP/1.1 200 OK[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Date: Mon, 07 Aug 2006 
18:38:15 GMT[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Server: Apache/2.2.2 
(Unix) mod_ssl/2.2.2 OpenSSL/0.9.7f mod_jk/1.2.15 mod_perl/2.0.2 
Perl/v5.8.6[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "X-Powered-By: Servlet 
2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 
date=200510231054)/Tomcat-5.5[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Content-Type: 
text/plain[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Content-Length: 3[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Connection: 
Keep-alive[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] header - << "Via: 1.1 
AN-0003011011165420[\r][\n]"
2006/08/07 11:37:18:442 PDT [DEBUG] HttpMethodBase - Should NOT close 
connection in response to directive: Keep-alive
2006/08/07 11:37:18:442 PDT [DEBUG] HttpConnection - Releasing 
connection back to connection manager.
Thread-3: 08/07/06 11:37:18-Skip bytes: 0
Thread-3: 08/07/06 11:37:18-uploading rad.rar
2006/08/07 11:37:18:504 PDT [DEBUG] header - >> "GET 
/AppWeb/MediaBatchUploadControl?fileKey=sk7LGgi48bAIvg8i4h784g%3D%3D 
HTTP/1.1[\r][\n]"
2006/08/07 11:37:18:504 PDT [DEBUG] HttpMethodBase - Adding Host request 
header
2006/08/07 11:37:18:504 PDT [DEBUG] header - >> "User-Agent: Jakarta 
Commons-HttpClient/3.1-alpha1[\r][\n]"
2006/08/07 11:37:18:504 PDT [DEBUG] header - >> "Host: test.xxx.com[\r][\n]"
2006/08/07 11:37:18:504 PDT [DEBUG] header - >> "[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "HTTP/1.1 200 OK[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Date: Mon, 07 Aug 2006 
18:38:17 GMT[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Server: Apache/2.2.2 
(Unix) mod_ssl/2.2.2 OpenSSL/0.9.7f mod_jk/1.2.15 mod_perl/2.0.2 
Perl/v5.8.6[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "X-Powered-By: Servlet 
2.4; JBoss-4.0.3SP1 (build: CVSTag=JBoss_4_0_3_SP1 
date=200510231054)/Tomcat-5.5[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Content-Type: 
text/plain[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Content-Length: 3[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Connection: 
Keep-alive[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] header - << "Via: 1.1 
AN-0003011011165420[\r][\n]"
2006/08/07 11:37:18:567 PDT [DEBUG] HttpMethodBase - Should NOT close 
connection in response to directive: Keep-alive
2006/08/07 11:37:18:567 PDT [DEBUG] HttpConnection - Releasing 
connection back to connection manager.
Thread-3: 08/07/06 11:37:18-Skip bytes: 0
Thread-3: 08/07/06 11:37:18-upload filename: rad.rar
Thread-3: 08/07/06 11:37:18-append: false
2006/08/07 11:37:18:598 PDT [DEBUG] DefaultHttpParams - Set parameter 
http.protocol.expect-continue = false
Thread-3: 08/07/06 11:37:18-Uploading rad.rar
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "POST 
/AppWeb/MediaBatchUploadControl HTTP/1.1[\r][\n]"
2006/08/07 11:37:18:598 PDT [DEBUG] HttpMethodBase - Adding Host request 
header
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "User-Agent: Jakarta 
Commons-HttpClient/3.1-alpha1[\r][\n]"
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Host: 
test.xxxx.com[\r][\n]"
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Length: 
3102473741[\r][\n]"
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "Content-Type: 
multipart/form-data; boundary=----------------314159265358979323846[\r][\n]"
2006/08/07 11:37:18:598 PDT [DEBUG] header - >> "[\r][\n]"


Oleg Kalnichevski wrote:

>On Mon, 2006-08-07 at 10:29 -0700, Paul Risenhoover wrote:
>
>>I've been using the 3.0.1 version for the last year or so, but last week 
>>I upgraded to 3.1-alpha1 (hoping the problem would be resolved) and the 
>>problem remains.
>>
>>
>
>Please post a wire/context log of an HTTP session that exhibits the
>problem
>
>http://jakarta.apache.org/commons/httpclient/logging.html
>
>Oleg
>
>
>
>>Oleg Kalnichevski wrote:
>>
>>
>>>On Mon, 2006-08-07 at 08:53 -0700, Paul Risenhoover wrote:
>>> 
>>>
>>>
>>>>Greetings all,
>>>>
>>>>I have searched the web and browsed the mailing list archives for a 
>>>>solution to my problem but have been unable to find anything 
>>>>substantial.  I'm hoping somebody here might point me in the right 
>>>>direction.
>>>>
>>>>The problem I'm having is with large files (>2Gb).  The HttpClient 
>>>>package simply doesn't seem to want to accept them.  I've got a 
>>>>servlet/applet comination in which the applet sends file to the servlet, 
>>>>and when I try to send a file over 2GB, I get the exception trace that 
>>>>you can see at the bottom of this page.  It works perfectly for files 
>>>>under 2GB.
>>>>
>>>>Has anybody else seen this problem?  Any thoughts on how to resolve it?
>>>>
>>>>Thanks,
>>>>Paul
>>>>
>>>>   
>>>>
>>>>
>>>What version of HttpClient are you using?
>>>
>>>Oleg
>>>
>>>
>>> 
>>>
>>>
>>>>2006-08-07 08:50:38,380 DEBUG  (MediaBatchUploadControl.java:670) 
>>>>ioexception - user may have lost connectivity.
>>>>java.io.IOException: Corrupt form data: premature ending
>>>>       at 
>>>>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
>>>>       at 
>>>>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:119)
>>>>... <snip>
>>>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>>>       at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>>>       at 
>>>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>>>       at 
>>>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>       at 
>>>>org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
>>>>       at 
>>>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>>>       at 
>>>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>>>       at 
>>>>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>>>       at 
>>>>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>>>>       at 
>>>>org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
>>>>       at 
>>>>org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
>>>>       at 
>>>>org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
>>>>       at 
>>>>org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
>>>>       at 
>>>>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>>>       at 
>>>>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>>>       at 
>>>>org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:138)
>>>>       at 
>>>>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>>>>       at 
>>>>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>>>>       at 
>>>>org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
>>>>       at 
>>>>org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
>>>>       at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
>>>>       at 
>>>>org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
>>>>       at 
>>>>org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
>>>>       at 
>>>>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>>>       at java.lang.Thread.run()V(Unknown Source)
>>>>
>>>>


Re: HttpClient and Large File (>2GB) Support

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, 2006-08-07 at 10:29 -0700, Paul Risenhoover wrote:
> I've been using the 3.0.1 version for the last year or so, but last week 
> I upgraded to 3.1-alpha1 (hoping the problem would be resolved) and the 
> problem remains.
> 

Please post a wire/context log of an HTTP session that exhibits the
problem

http://jakarta.apache.org/commons/httpclient/logging.html

Oleg


> Oleg Kalnichevski wrote:
> 
> >On Mon, 2006-08-07 at 08:53 -0700, Paul Risenhoover wrote:
> >  
> >
> >>Greetings all,
> >>
> >>I have searched the web and browsed the mailing list archives for a 
> >>solution to my problem but have been unable to find anything 
> >>substantial.  I'm hoping somebody here might point me in the right 
> >>direction.
> >>
> >>The problem I'm having is with large files (>2Gb).  The HttpClient 
> >>package simply doesn't seem to want to accept them.  I've got a 
> >>servlet/applet comination in which the applet sends file to the servlet, 
> >>and when I try to send a file over 2GB, I get the exception trace that 
> >>you can see at the bottom of this page.  It works perfectly for files 
> >>under 2GB.
> >>
> >>Has anybody else seen this problem?  Any thoughts on how to resolve it?
> >>
> >>Thanks,
> >>Paul
> >>
> >>    
> >>
> >
> >What version of HttpClient are you using?
> >
> >Oleg
> >
> >
> >  
> >
> >>2006-08-07 08:50:38,380 DEBUG  (MediaBatchUploadControl.java:670) 
> >>ioexception - user may have lost connectivity.
> >>java.io.IOException: Corrupt form data: premature ending
> >>        at 
> >>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
> >>        at 
> >>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:119)
> >>... <snip>
> >>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
> >>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
> >>        at 
> >>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> >>        at 
> >>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at 
> >>org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
> >>        at 
> >>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
> >>        at 
> >>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> >>        at 
> >>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> >>        at 
> >>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> >>        at 
> >>org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
> >>        at 
> >>org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
> >>        at 
> >>org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
> >>        at 
> >>org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
> >>        at 
> >>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> >>        at 
> >>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> >>        at 
> >>org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:138)
> >>        at 
> >>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> >>        at 
> >>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> >>        at 
> >>org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
> >>        at 
> >>org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
> >>        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
> >>        at 
> >>org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
> >>        at 
> >>org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
> >>        at 
> >>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> >>        at java.lang.Thread.run()V(Unknown Source)
> >>
> >>
> >>---------------------------------------------------------------------
> >>To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> >>For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> >>
> >>
> >>    
> >>
> >
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> >For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> >
> >
> >  
> >
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org


Re: HttpClient and Large File (>2GB) Support

Posted by Paul Risenhoover <pr...@daxsolutions.com>.
I've been using the 3.0.1 version for the last year or so, but last week 
I upgraded to 3.1-alpha1 (hoping the problem would be resolved) and the 
problem remains.

Oleg Kalnichevski wrote:

>On Mon, 2006-08-07 at 08:53 -0700, Paul Risenhoover wrote:
>  
>
>>Greetings all,
>>
>>I have searched the web and browsed the mailing list archives for a 
>>solution to my problem but have been unable to find anything 
>>substantial.  I'm hoping somebody here might point me in the right 
>>direction.
>>
>>The problem I'm having is with large files (>2Gb).  The HttpClient 
>>package simply doesn't seem to want to accept them.  I've got a 
>>servlet/applet comination in which the applet sends file to the servlet, 
>>and when I try to send a file over 2GB, I get the exception trace that 
>>you can see at the bottom of this page.  It works perfectly for files 
>>under 2GB.
>>
>>Has anybody else seen this problem?  Any thoughts on how to resolve it?
>>
>>Thanks,
>>Paul
>>
>>    
>>
>
>What version of HttpClient are you using?
>
>Oleg
>
>
>  
>
>>2006-08-07 08:50:38,380 DEBUG  (MediaBatchUploadControl.java:670) 
>>ioexception - user may have lost connectivity.
>>java.io.IOException: Corrupt form data: premature ending
>>        at 
>>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
>>        at 
>>com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:119)
>>... <snip>
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>>        at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>>        at 
>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>>        at 
>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at 
>>org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
>>        at 
>>org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>>        at 
>>org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>>        at 
>>org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>>        at 
>>org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>>        at 
>>org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
>>        at 
>>org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
>>        at 
>>org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
>>        at 
>>org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
>>        at 
>>org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>>        at 
>>org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>>        at 
>>org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:138)
>>        at 
>>org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>>        at 
>>org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>>        at 
>>org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
>>        at 
>>org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
>>        at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
>>        at 
>>org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
>>        at 
>>org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
>>        at 
>>org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>>        at java.lang.Thread.run()V(Unknown Source)
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>>
>>
>>    
>>
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
>
>
>  
>


-- 
Paul Risenhoover - Director of Engineering - DAX Solutions, Inc. - 310-478-6644
____
This email message is for the sole use of the intended recipient(s) and may contain confidential and privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the intended recipient, please contact the sender by reply email and destroy all copies of the original message.


Re: HttpClient and Large File (>2GB) Support

Posted by Oleg Kalnichevski <ol...@apache.org>.
On Mon, 2006-08-07 at 08:53 -0700, Paul Risenhoover wrote:
> Greetings all,
> 
> I have searched the web and browsed the mailing list archives for a 
> solution to my problem but have been unable to find anything 
> substantial.  I'm hoping somebody here might point me in the right 
> direction.
> 
> The problem I'm having is with large files (>2Gb).  The HttpClient 
> package simply doesn't seem to want to accept them.  I've got a 
> servlet/applet comination in which the applet sends file to the servlet, 
> and when I try to send a file over 2GB, I get the exception trace that 
> you can see at the bottom of this page.  It works perfectly for files 
> under 2GB.
> 
> Has anybody else seen this problem?  Any thoughts on how to resolve it?
> 
> Thanks,
> Paul
> 

What version of HttpClient are you using?

Oleg


> 
> 2006-08-07 08:50:38,380 DEBUG  (MediaBatchUploadControl.java:670) 
> ioexception - user may have lost connectivity.
> java.io.IOException: Corrupt form data: premature ending
>         at 
> com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:205)
>         at 
> com.oreilly.servlet.multipart.MultipartParser.<init>(MultipartParser.java:119)
> ... <snip>
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at 
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
>         at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at 
> org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
>         at 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
>         at 
> org.jboss.web.tomcat.tc5.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:81)
>         at 
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at 
> org.jboss.web.tomcat.tc5.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:138)
>         at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at 
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at 
> org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:307)
>         at 
> org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:385)
>         at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:748)
>         at 
> org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:678)
>         at 
> org.apache.jk.common.SocketConnection.runIt(ChannelSocket.java:871)
>         at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run()V(Unknown Source)
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: httpclient-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: httpclient-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: httpclient-user-help@jakarta.apache.org