Consistent use of IllegalStateException instead of InternalError for UnsupportedEncodingException cause

This commit is contained in:
Juergen Hoeller 2014-05-20 00:37:09 +02:00
parent 73c9d09024
commit d9b39ad691
4 changed files with 27 additions and 24 deletions

View File

@ -81,7 +81,7 @@ public class MockHttpOutputMessage implements HttpOutputMessage {
}
catch (UnsupportedEncodingException ex) {
// should not occur
throw new InternalError(ex.getMessage());
throw new IllegalStateException(ex);
}
}

View File

@ -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);
}
}

View File

@ -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);
}
}

View File

@ -30,7 +30,7 @@ import org.springframework.util.Assert;
import org.springframework.util.MultiValueMap;
/**
* Represents an immutable collection of URI components, mapping component type to string
* 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.
@ -119,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);
}
}
@ -140,7 +141,7 @@ public abstract class UriComponents implements Serializable {
public abstract UriComponents encode(String encoding) throws UnsupportedEncodingException;
/**
* Replaces all URI template variables with the values from a given map. The map keys
* Replace 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.
* @param uriVariables the map of URI variables
@ -152,7 +153,7 @@ public abstract class UriComponents implements Serializable {
}
/**
* Replaces all URI template variables with the values from a given array. The array
* Replace 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
@ -163,7 +164,7 @@ public abstract class UriComponents implements Serializable {
}
/**
* Replaces all URI template variables with the values obtained through the
* Replace all URI template variables with the values obtained through the
* given {@link UriTemplateVariables} instance.
* @param uriTemplateVars resolves URI template variable values
* @return the expanded uri components
@ -174,7 +175,7 @@ public abstract class UriComponents implements Serializable {
}
/**
* Replaces all URI template variables with the values from the given {@link
* Replace all URI template variables with the values from the given {@link
* UriTemplateVariables}
* @param uriVariables URI template values
* @return the expanded uri components
@ -188,12 +189,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();