This is the webrev for the bug
http://cr.openjdk.java.net/~michaelm/8012625/webrev.1/
Thanks
Michael
On 15/05/13 17:03, Michael McMahon wrote:
Piotr,
We took a look at this issue again, and while it is still the case
that to get Expect: Continue
to work properly, you need to enable one of the streaming modes.
However, prior to jdk7
there was partial support for this mechanism, where it obeyed the
protocol at least
when you set the Expect header. What it didn't do is delay sending the
request body until
the 100 response is received. However, that might not have been a
problem in many cases,
and it looks like in jdk7 this specific mode is not working exactly
the same as before. One problem
is that a 5 second delay can be seen.
Anyhow, we will fix the problem in jdk 8 so that the exact same
behavior as jdk 6 is seen.
I'll send a webrev with a fix soon.
Thanks
Michael
On 07/05/13 15:40, Piotr Bzdyl wrote:
In this case I will have to double check the SAAJ SoapConnection (as
we encountered the problem indirectly when using SAAJ
SoapConnection). The code invoking the SOAP service was setting
Expect: 100-continue header as the SOAP message header and
SoapConnection propagated it to HttpURLConnection. I need to confirm
that it is even allowed and if it is I will report the bug in SAAJ
project.
Best regards,
Piotr
On Tue, May 7, 2013 at 4:29 PM, Chris Hegarty
<chris.hega...@oracle.com <mailto:chris.hega...@oracle.com>> wrote:
I replied too quick. This is not a bug per say, but a limitation
of the existing API.
Expect: 100-continue is only supported with streaming requests,
i.e. setChunkedStreamingMode(int), or
setFixedLengthStreamingMode(long).
With the above API's the appropriate header, content-length or
Transfer-Encoding: chunked, can be set before return the
OutputStream ( from getOutputStream() ). Without either of the
above calls the content-length is only determinable after the
returned output stream is closed, and this happens after the
return from getOutptuStream().
So I would say this is a limitation of the API. But the
workaround is quite straight forward, use streaming.
-Chris.
On 05/07/2013 03:05 PM, Chris Hegarty wrote:
On 05/07/2013 02:59 PM, Piotr Bzdyl wrote:
Chris,
When I used the URL provided by you I have indeed access
to my bug
report. It seems the notification email I got with
confirmation of my
report submission provides the misleading URL. Is it
possible to fix it
in the notification template?
You are right the URL provided to you is pretty much useless,
at this
point. Not that is matters much, but there are separate JIRA
projects
for bugs moving from web screening to the "real" bug
incidents. If it is
any consolation, your issue has made it all the way ;-)
When I debug the code (using the test case I attached to
the bug
report), it doesn't go into the
if (streaming() && strOutputStream == null) {
writeRequests(); // <<<< Here
}
but goes directly to expect100Continue() in:
if (expectContinue) {
expect100Continue();
}
Ah ha. that is the bug. We should always writeRequests (
write headers )
when expectContinue is set. I'll update the bug with this
clear comment,
and then propose a patch for JDK8.
-Chris.
On Tue, May 7, 2013 at 3:52 PM, Chris Hegarty
<chris.hega...@oracle.com <mailto:chris.hega...@oracle.com>
<mailto:chris.hega...@oracle.com
<mailto:chris.hega...@oracle.com>>> wrote:
Hi Piotr,
Your bug is accessible at
http://bugs.sun.com/view_bug.__do?bug_id=8012625
<http://bugs.sun.com/view_bug.do?bug_id=8012625>
From my reading of the code the headers should be
sent before
waiting for the reply to continue.
From sun/net/www/prtotocol/http/__HttpURLConnection:
getOutputStream() {
....
if (!checkReuseConnection())
connect();
boolean expectContinue = false;
String expects = requests.findValue("Expect");
if
("100-Continue".__equalsIgnoreCase(expects)) {
http.setIgnoreContinue(false);
expectContinue = true;
}
if (streaming() && strOutputStream == null) {
writeRequests(); // <<<< Here
}
if (expectContinue) {
expect100Continue();
}
....
}
Are you seeing something different?
-Chris.
On 05/07/2013 02:25 PM, Piotr Bzdyl wrote:
Hello,
This is my first post to this mailing list so I
would like to
say "Hi".
The reason I subscribed and I am writing is that
I believe I
have found
a bug in sun.*.HttpURLConnection class (in
particular how it
handles
Expect: 100-continue header). I have already
submitted a bug at
bugs.sun.com <http://bugs.sun.com> <http://bugs.sun.com>
<http://bugs.sun.com> but
after almost 3 weeks I still
cannot access the bug and check its status
(http://bugs.sun.com/__bugdatabase/view_bug.do?bug___id=9001773
<http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=9001773>).
I would like to ask if bugs.sun.com
<http://bugs.sun.com> <http://bugs.sun.com>
<http://bugs.sun.com> is alive or if
it is possible to report the bug in the OpenJDK
project or is
there any
other alternative procedure for submitting bug
reports.
Best regards,
Piotr Bzdyl