summaryrefslogtreecommitdiffstats
path: root/libjava/classpath/gnu/java/net/protocol/http/Request.java
diff options
context:
space:
mode:
authordaney <daney@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-11 18:15:27 +0000
committerdaney <daney@138bc75d-0d04-0410-961f-82ee72b054a4>2006-09-11 18:15:27 +0000
commit3b6c0fa2773e18742bd53c1db17ab3fadb75d606 (patch)
treee98e8f318fc5b8860f69a1c0e3900d5af1192f18 /libjava/classpath/gnu/java/net/protocol/http/Request.java
parent73f4dbb089f8be50016c301a0db8240d13d14f87 (diff)
downloadppe42-gcc-3b6c0fa2773e18742bd53c1db17ab3fadb75d606.tar.gz
ppe42-gcc-3b6c0fa2773e18742bd53c1db17ab3fadb75d606.zip
PR classpath/28580
* gnu/java/net/protocol/http/Request.java (readResponse): Call createResponseBodyStream in more cases and with new parameter. (createResponseBodyStream): Added new parameter mayHaveBody. Handle HEAD and !mayHaveBody responses specially. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@116853 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/gnu/java/net/protocol/http/Request.java')
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/Request.java15
1 files changed, 12 insertions, 3 deletions
diff --git a/libjava/classpath/gnu/java/net/protocol/http/Request.java b/libjava/classpath/gnu/java/net/protocol/http/Request.java
index e15ec4182a4..cd9d7ea4423 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/Request.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/Request.java
@@ -419,13 +419,16 @@ public class Request
switch (code)
{
case 100:
+ break;
case 204:
case 205:
case 304:
+ body = createResponseBodyStream(responseHeaders, majorVersion,
+ minorVersion, in, false);
break;
default:
body = createResponseBodyStream(responseHeaders, majorVersion,
- minorVersion, in);
+ minorVersion, in, true);
}
// Construct response
@@ -453,7 +456,8 @@ public class Request
private InputStream createResponseBodyStream(Headers responseHeaders,
int majorVersion,
int minorVersion,
- InputStream in)
+ InputStream in,
+ boolean mayHaveBody)
throws IOException
{
long contentLength = -1;
@@ -466,7 +470,12 @@ public class Request
(majorVersion == 1 && minorVersion == 0);
String transferCoding = responseHeaders.getValue("Transfer-Encoding");
- if ("chunked".equalsIgnoreCase(transferCoding))
+ if ("HEAD".equals(method) || !mayHaveBody)
+ {
+ // Special case no body.
+ in = new LimitedLengthInputStream(in, 0, true, connection, doClose);
+ }
+ else if ("chunked".equalsIgnoreCase(transferCoding))
{
in = new LimitedLengthInputStream(in, -1, false, connection, doClose);
OpenPOWER on IntegriCloud