Consistent headers.getContentLength() checks
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2014 the original author or authors.
|
* Copyright 2002-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -43,7 +43,7 @@ abstract class AbstractBufferingAsyncClientHttpRequest extends AbstractAsyncClie
|
|||||||
@Override
|
@Override
|
||||||
protected ListenableFuture<ClientHttpResponse> executeInternal(HttpHeaders headers) throws IOException {
|
protected ListenableFuture<ClientHttpResponse> executeInternal(HttpHeaders headers) throws IOException {
|
||||||
byte[] bytes = this.bufferedOutput.toByteArray();
|
byte[] bytes = this.bufferedOutput.toByteArray();
|
||||||
if (headers.getContentLength() == -1) {
|
if (headers.getContentLength() < 0) {
|
||||||
headers.setContentLength(bytes.length);
|
headers.setContentLength(bytes.length);
|
||||||
}
|
}
|
||||||
ListenableFuture<ClientHttpResponse> result = executeInternal(headers, bytes);
|
ListenableFuture<ClientHttpResponse> result = executeInternal(headers, bytes);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2014 the original author or authors.
|
* Copyright 2002-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -42,7 +42,7 @@ abstract class AbstractBufferingClientHttpRequest extends AbstractClientHttpRequ
|
|||||||
@Override
|
@Override
|
||||||
protected ClientHttpResponse executeInternal(HttpHeaders headers) throws IOException {
|
protected ClientHttpResponse executeInternal(HttpHeaders headers) throws IOException {
|
||||||
byte[] bytes = this.bufferedOutput.toByteArray();
|
byte[] bytes = this.bufferedOutput.toByteArray();
|
||||||
if (headers.getContentLength() == -1) {
|
if (headers.getContentLength() < 0) {
|
||||||
headers.setContentLength(bytes.length);
|
headers.setContentLength(bytes.length);
|
||||||
}
|
}
|
||||||
ClientHttpResponse result = executeInternal(headers, bytes);
|
ClientHttpResponse result = executeInternal(headers, bytes);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2015 the original author or authors.
|
* Copyright 2002-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -68,7 +68,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an {@code AbstractHttpMessageConverter} with multiple supported media type.
|
* Construct an {@code AbstractHttpMessageConverter} with multiple supported media types.
|
||||||
* @param supportedMediaTypes the supported media types
|
* @param supportedMediaTypes the supported media types
|
||||||
*/
|
*/
|
||||||
protected AbstractHttpMessageConverter(MediaType... supportedMediaTypes) {
|
protected AbstractHttpMessageConverter(MediaType... supportedMediaTypes) {
|
||||||
@@ -101,7 +101,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns true if any of the {@linkplain #setSupportedMediaTypes(List)
|
* Returns {@code true} if any of the {@linkplain #setSupportedMediaTypes(List)
|
||||||
* supported} media types {@link MediaType#includes(MediaType) include} the
|
* supported} media types {@link MediaType#includes(MediaType) include} the
|
||||||
* given media type.
|
* given media type.
|
||||||
* @param mediaType the media type to read, can be {@code null} if not specified.
|
* @param mediaType the media type to read, can be {@code null} if not specified.
|
||||||
@@ -217,7 +217,7 @@ public abstract class AbstractHttpMessageConverter<T> implements HttpMessageConv
|
|||||||
headers.setContentType(contentTypeToUse);
|
headers.setContentType(contentTypeToUse);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (headers.getContentLength() == -1) {
|
if (headers.getContentLength() < 0) {
|
||||||
Long contentLength = getContentLength(t, headers.getContentType());
|
Long contentLength = getContentLength(t, headers.getContentType());
|
||||||
if (contentLength != null) {
|
if (contentLength != null) {
|
||||||
headers.setContentLength(contentLength);
|
headers.setContentLength(contentLength);
|
||||||
|
|||||||
@@ -132,7 +132,7 @@ public class ServletServerHttpRequest implements ServerHttpRequest {
|
|||||||
this.headers.setContentType(newContentType);
|
this.headers.setContentType(newContentType);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (this.headers.getContentLength() == -1) {
|
if (this.headers.getContentLength() < 0) {
|
||||||
int requestContentLength = this.servletRequest.getContentLength();
|
int requestContentLength = this.servletRequest.getContentLength();
|
||||||
if (requestContentLength != -1) {
|
if (requestContentLength != -1) {
|
||||||
this.headers.setContentLength(requestContentLength);
|
this.headers.setContentLength(requestContentLength);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2002-2015 the original author or authors.
|
* Copyright 2002-2016 the original author or authors.
|
||||||
*
|
*
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
@@ -773,7 +773,7 @@ public class RestTemplate extends InterceptingHttpAccessor implements RestOperat
|
|||||||
if (!requestHeaders.isEmpty()) {
|
if (!requestHeaders.isEmpty()) {
|
||||||
httpHeaders.putAll(requestHeaders);
|
httpHeaders.putAll(requestHeaders);
|
||||||
}
|
}
|
||||||
if (httpHeaders.getContentLength() == -1) {
|
if (httpHeaders.getContentLength() < 0) {
|
||||||
httpHeaders.setContentLength(0L);
|
httpHeaders.setContentLength(0L);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user