Hello Slider,

Sorry for having all the troubles with the new http-client. Starting with
the migration everything looked very promising, but as always it is the
detail ...

As a work-around for the "hanging" problem, please give the
-Dhttpclient.authentication.preemptive=true   a try.

I will look into the performance area soon. Actually I have not detected
this big figure, but I am running the WebDAV test suite, which itself
consume processing time.

Best regards,

Juergen




-----Original Message-----
From:   Kalnichevski, Oleg [mailto:[EMAIL PROTECTED]] 
Sent:   Thursday, January 16, 2003 14.25 PM
To:     Commons HttpClient Project
Subject:        RE: Bug in PUT method with TC

Juergen 
I am planning to rewrite PutMethod and PostMethod classes as soon as all the
pending patches land in the CVS HEAD. I'll look into this one as well. So,
please, just bear with us
Oleg
-----Original Message-----
From:   Pill, Juergen [mailto:[EMAIL PROTECTED]]
Sent:   Thursday, January 16, 2003 2:20 PM
To:     'Commons HttpClient Project'
Subject:        RE: Bug in PUT method with TC


Hello,

Here is the sniffer protocol:


PUT /taminowebdavserver/mypictures/aaa.txt HTTP/1.1
Expect: 100-continue
Host: pcjpl:4001
Content-Length: 2100
User-Agent: Jakarta Commons-HttpClient/2.0M1

HTTP/1.1 401 Unauthorized
Pragma: No-cache
Cache-Control:  no-cache
Expires:        Thu, 01 Jan 1970 00:00:00 GMT
WWW-Authenticate:       Basic realm="Slide DAV Server"
Content-Type:   text/html
Content-Language:       en-US
Transfer-Encoding:      chunked
Date:   Thu, 16 Jan 2003 13:07:14 GMT
Server: Apache Coyote/1.0

29b
<html><head><title>Apache Tomcat/4.1.12 - Error
report</title><STYLE><!--H1{font-family : sans-serif,Arial,Tahoma;color :
white;background-color : #0086b2;} H3{font-family :
sans-serif,Arial,Tahoma;color : white;background-color : #0086b2;}
BODY{font-family : sans-serif,Arial,Tahoma;color : black;background-color :
white;} B{color : white;background-color : #0086b2;} HR{color : #0086b2;}
* ></STYLE> </head><body><h1>HTTP Status 401 - </h1><HR size="1"
noshade><p><b>type</b> Status report</p><p><b>message</b>
<u></u></p><p><b>description</b> <u>This request requires HTTP
authentication ().</u></p><HR size="1" noshade><h3>Apache
Tomcat/4.1.12</h3></body></html>
0


PUT /taminowebdavserver/mypictures/aaa.txt HTTP/1.1
Authorization: Basic xxxxxxxxxxxxxxxxx
Expect: 100-continue
Host: pcjpl:4001
Content-Length: 2100
User-Agent: Jakarta Commons-HttpClient/2.0M1



==============>   hanging client (in readStatusLine)


I am using as the server Tomcat 4.1.12 and a head version of Slide from few
months ago. The client is the current http-commons CVS head.


If I am running with   -Dhttpclient.authentication.preemptive=true   the
problem disappears.

PUT /taminowebdavserver/mypictures/aaa.txt HTTP/1.1
Authorization: Basic xxxxxxxxxxxx
Expect: 100-continue
Host: pcjpl:4001
Content-Length: 2100
User-Agent: Jakarta Commons-HttpClient/2.0M1


HTTP/1.1 100 Continue

Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890
Hello this is a test in one line that is longer 12345677890

HTTP/1.1 204 No Content
Pragma: No-cache
Cache-Control: no-cache
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Set-Cookie: JSESSIONID�B6E6105F673CA35797AAE338B820F2;
Path=/taminowebdavserver
Content-Length: 0
Date:   Thu, 16 Jan 2003 13:14:58 GMT
        Server: Apache Coyote/1.0








Code:




        {
HttpClient client = new HttpClient();
HttpState state = new WebdavState();
Credentials cred = new UsernamePasswordCredentials("xxx", "xxxx");
client.startSession("pcjpl", 4001); state.setCredentials(null, cred);
client.setState(state);
PutMethod method = new
PutMethod("/taminowebdavserver/mypictures/aaa.txt");
String s = "Hello this is a test in one line that is longer 12345677890\n";
s  s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s+s;
byte[] body = s.getBytes(); method.setRequestHeader("Content-Length",
""+body.length); method.setRequestBody(body);
try {
client.executeMethod(method); client.endSession();
} catch (java.io.IOException e) {
e.printStackTrace();
            }
        }


Any ideas?
Best regards,

Juergen




-----Original Message-----
From:   Remy Maucherat [mailto:[EMAIL PROTECTED]] 
Sent:   Wednesday, January 01, 2003 11.47 AM
To:     [EMAIL PROTECTED]
Subject:        Re: Bug in PUT method with TC

Pill, Juergen wrote:
> Hello,
> 
> I want to report a bug in the PUT method, if running directly with Tomcat
> and Jakarta-Slide servlet.
> 
> The http client API sends an expect 100-continue header. If running under
> Apache the 100 response code is send from the server and the body is
> delivered correctly. If running directly with the TC port (e.g. 8080) the
> 100 response code is not generated, in this case the client does not send
> the body and the server waits infinite.
> 
> Is this a problem in TC or the servlet implementation. 
> Could we make the client API more robust to handle this case?

I think Tomcat works fine. If you send:
GET / HTTP/1.1
Host: localhost:8080
Expect: 100-continue

You get back (I tested 5.0.1-dev and 4.1.18):
HTTP/1.1 100 Continue
HTTP/1.1 302 D�plac� Temporairement
Location: http://localhost:8080/index.jsp
Content-Type: text/plain
Content-Length: 0
Date:   Wed, 01 Jan 2003 10:40:40 GMT
        Server: Apache Coyote/1.0

Remy

--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]> For
additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to