diff --git a/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java b/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java index 43ee32f319..a4ef87e743 100644 --- a/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java +++ b/spring-test/src/main/java/org/springframework/mock/http/MockHttpOutputMessage.java @@ -79,7 +79,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage { } catch (UnsupportedEncodingException ex) { // should not occur - throw new InternalError(ex.getMessage()); + throw new IllegalStateException(ex); } } diff --git a/spring-web/src/main/java/org/springframework/web/client/HttpStatusCodeException.java b/spring-web/src/main/java/org/springframework/web/client/HttpStatusCodeException.java index 10f1d22f17..93b3c11064 100644 --- a/spring-web/src/main/java/org/springframework/web/client/HttpStatusCodeException.java +++ b/spring-web/src/main/java/org/springframework/web/client/HttpStatusCodeException.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -35,6 +35,7 @@ public abstract class HttpStatusCodeException extends RestClientException { private static final String DEFAULT_CHARSET = "ISO-8859-1"; + private final HttpStatus statusCode; private final String statusText; @@ -74,10 +75,9 @@ public abstract class HttpStatusCodeException extends RestClientException { * @param responseCharset the response body charset, may be {@code null} * @since 3.0.5 */ - protected HttpStatusCodeException(HttpStatus statusCode, - String statusText, - byte[] responseBody, - Charset responseCharset) { + protected HttpStatusCodeException( + HttpStatus statusCode, String statusText, byte[] responseBody, Charset responseCharset) { + this(statusCode, statusText, null, responseBody, responseCharset); } @@ -93,6 +93,7 @@ public abstract class HttpStatusCodeException extends RestClientException { */ protected HttpStatusCodeException(HttpStatus statusCode, String statusText, HttpHeaders responseHeaders, byte[] responseBody, Charset responseCharset) { + super(statusCode.value() + " " + statusText); this.statusCode = statusCode; this.statusText = statusText; @@ -126,11 +127,10 @@ public abstract class HttpStatusCodeException extends RestClientException { /** * Return the response body as a byte array. - * * @since 3.0.5 */ public byte[] getResponseBodyAsByteArray() { - return responseBody; + return this.responseBody; } /** @@ -139,11 +139,11 @@ public abstract class HttpStatusCodeException extends RestClientException { */ public String getResponseBodyAsString() { try { - return new String(responseBody, responseCharset); + return new String(this.responseBody, this.responseCharset); } catch (UnsupportedEncodingException ex) { // should not occur - throw new InternalError(ex.getMessage()); + throw new IllegalStateException(ex); } } diff --git a/spring-web/src/main/java/org/springframework/web/client/UnknownHttpStatusCodeException.java b/spring-web/src/main/java/org/springframework/web/client/UnknownHttpStatusCodeException.java index 648c82d79c..40ac50474f 100644 --- a/spring-web/src/main/java/org/springframework/web/client/UnknownHttpStatusCodeException.java +++ b/spring-web/src/main/java/org/springframework/web/client/UnknownHttpStatusCodeException.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2012 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.client; import java.io.UnsupportedEncodingException; @@ -64,6 +65,7 @@ public class UnknownHttpStatusCodeException extends RestClientException { this.responseCharset = responseCharset != null ? responseCharset.name() : DEFAULT_CHARSET; } + /** * Return the raw HTTP status code value. */ @@ -89,7 +91,7 @@ public class UnknownHttpStatusCodeException extends RestClientException { * Return the response body as a byte array. */ public byte[] getResponseBodyAsByteArray() { - return responseBody; + return this.responseBody; } /** @@ -97,11 +99,11 @@ public class UnknownHttpStatusCodeException extends RestClientException { */ public String getResponseBodyAsString() { try { - return new String(responseBody, responseCharset); + return new String(this.responseBody, this.responseCharset); } catch (UnsupportedEncodingException ex) { // should not occur - throw new InternalError(ex.getMessage()); + throw new IllegalStateException(ex); } } diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java index cbdf13ef6b..16b3e29cd8 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponents.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2013 the original author or authors. + * Copyright 2002-2014 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,15 +30,16 @@ import org.springframework.util.Assert; import org.springframework.util.MultiValueMap; /** - * Represents an immutable collection of URI components, mapping component type to string - * values. Contains convenience getters for all components. Effectively similar to {@link - * java.net.URI}, but with more powerful encoding options and support for URI template - * variables. + * Represents an immutable collection of URI components, mapping component type to + * String values. Contains convenience getters for all components. Effectively similar + * to {@link java.net.URI}, but with more powerful encoding options and support for + * URI template variables. * * @author Arjen Poutsma * @since 3.1 * @see UriComponentsBuilder */ +@SuppressWarnings("serial") public abstract class UriComponents implements Serializable { private static final String DEFAULT_ENCODING = "UTF-8"; @@ -118,14 +119,15 @@ public abstract class UriComponents implements Serializable { /** * Encode all URI components using their specific encoding rules, and returns the * result as a new {@code UriComponents} instance. This method uses UTF-8 to encode. - * @return the encoded uri components + * @return the encoded URI components */ public final UriComponents encode() { try { return encode(DEFAULT_ENCODING); } - catch (UnsupportedEncodingException e) { - throw new InternalError("\"" + DEFAULT_ENCODING + "\" not supported"); + catch (UnsupportedEncodingException ex) { + // should not occur + throw new IllegalStateException(ex); } } @@ -133,17 +135,17 @@ public abstract class UriComponents implements Serializable { * Encode all URI components using their specific encoding rules, and * returns the result as a new {@code UriComponents} instance. * @param encoding the encoding of the values contained in this map - * @return the encoded uri components + * @return the encoded URI components * @throws UnsupportedEncodingException if the given encoding is not supported */ public abstract UriComponents encode(String encoding) throws UnsupportedEncodingException; /** - * Replaces all URI template variables with the values from a given map. The map keys - * represent variable names; the values variable values. The order of variables is not - * significant. + * Replace all URI template variables with the values from a given map. + *

The given map keys represent variable names; the corresponding values + * represent variable values. The order of variables is not significant. * @param uriVariables the map of URI variables - * @return the expanded uri components + * @return the expanded URI components */ public final UriComponents expand(Map uriVariables) { Assert.notNull(uriVariables, "'uriVariables' must not be null"); @@ -151,10 +153,10 @@ public abstract class UriComponents implements Serializable { } /** - * Replaces all URI template variables with the values from a given array. The array - * represent variable values. The order of variables is significant. - * @param uriVariableValues URI variable values - * @return the expanded uri components + * Replace all URI template variables with the values from a given array. + *

The given array represents variable values. The order of variables is significant. + * @param uriVariableValues the URI variable values + * @return the expanded URI components */ public final UriComponents expand(Object... uriVariableValues) { Assert.notNull(uriVariableValues, "'uriVariableValues' must not be null"); @@ -162,10 +164,10 @@ public abstract class UriComponents implements Serializable { } /** - * Replaces all URI template variables with the values from the given {@link - * UriTemplateVariables} - * @param uriVariables URI template values - * @return the expanded uri components + * Replace all URI template variables with the values from the given + * {@link UriTemplateVariables}. + * @param uriVariables the URI template values + * @return the expanded URI components */ abstract UriComponents expandInternal(UriTemplateVariables uriVariables); @@ -176,12 +178,12 @@ public abstract class UriComponents implements Serializable { public abstract UriComponents normalize(); /** - * Returns a URI string from this {@code UriComponents} instance. + * Return a URI string from this {@code UriComponents} instance. */ public abstract String toUriString(); /** - * Returns a {@code URI} from this {@code UriComponents} instance. + * Return a {@code URI} from this {@code UriComponents} instance. */ public abstract URI toUri();