diff --git a/retrofit/src/main/java/retrofit2/BuiltInConverters.java b/retrofit/src/main/java/retrofit2/BuiltInConverters.java index f729383a3153640759cd0bdf046ba9a6cd491e1c..86228d5c37006261030bc99546e4bc30885b8ff0 100644 --- a/retrofit/src/main/java/retrofit2/BuiltInConverters.java +++ b/retrofit/src/main/java/retrofit2/BuiltInConverters.java @@ -49,7 +49,7 @@ final class BuiltInConverters extends Converter.Factory { static final class VoidResponseBodyConverter implements Converter { static final VoidResponseBodyConverter INSTANCE = new VoidResponseBodyConverter(); - @Override public Void convert(ResponseBody value) throws IOException { + @Override public Void convert(ResponseBody value) { value.close(); return null; } @@ -58,7 +58,7 @@ final class BuiltInConverters extends Converter.Factory { static final class RequestBodyConverter implements Converter { static final RequestBodyConverter INSTANCE = new RequestBodyConverter(); - @Override public RequestBody convert(RequestBody value) throws IOException { + @Override public RequestBody convert(RequestBody value) { return value; } } @@ -67,7 +67,7 @@ final class BuiltInConverters extends Converter.Factory { implements Converter { static final StreamingResponseBodyConverter INSTANCE = new StreamingResponseBodyConverter(); - @Override public ResponseBody convert(ResponseBody value) throws IOException { + @Override public ResponseBody convert(ResponseBody value) { return value; } } diff --git a/retrofit/src/main/java/retrofit2/OkHttpCall.java b/retrofit/src/main/java/retrofit2/OkHttpCall.java index b4034286e49d6596a828588629e16e4ff08f24df..90e82d7b5b950102ef06dca5c9d4b979892f8e4b 100644 --- a/retrofit/src/main/java/retrofit2/OkHttpCall.java +++ b/retrofit/src/main/java/retrofit2/OkHttpCall.java @@ -110,8 +110,7 @@ final class OkHttpCall implements Call { } call.enqueue(new okhttp3.Callback() { - @Override public void onResponse(okhttp3.Call call, okhttp3.Response rawResponse) - throws IOException { + @Override public void onResponse(okhttp3.Call call, okhttp3.Response rawResponse) { Response response; try { response = parseResponse(rawResponse); @@ -119,7 +118,12 @@ final class OkHttpCall implements Call { callFailure(e); return; } - callSuccess(response); + + try { + callback.onResponse(OkHttpCall.this, response); + } catch (Throwable t) { + t.printStackTrace(); + } } @Override public void onFailure(okhttp3.Call call, IOException e) { @@ -133,14 +137,6 @@ final class OkHttpCall implements Call { t.printStackTrace(); } } - - private void callSuccess(Response response) { - try { - callback.onResponse(OkHttpCall.this, response); - } catch (Throwable t) { - t.printStackTrace(); - } - } }); } diff --git a/retrofit/src/main/java/retrofit2/ParameterHandler.java b/retrofit/src/main/java/retrofit2/ParameterHandler.java index 10238b026fd5c09aba535bf8b2d6712aef570d51..9294134186855440619bb9cb0c2009f6e3b24915 100644 --- a/retrofit/src/main/java/retrofit2/ParameterHandler.java +++ b/retrofit/src/main/java/retrofit2/ParameterHandler.java @@ -297,8 +297,7 @@ abstract class ParameterHandler { private RawPart() { } - @Override void apply(RequestBuilder builder, @Nullable MultipartBody.Part value) - throws IOException { + @Override void apply(RequestBuilder builder, @Nullable MultipartBody.Part value) { if (value != null) { // Skip null values. builder.addPart(value); } diff --git a/retrofit/src/main/java/retrofit2/Utils.java b/retrofit/src/main/java/retrofit2/Utils.java index 80dd6cb0fbf807b8048f5153d41f9b938402820c..12544e357d47ae5f3da5e681bde34bbd6e133005 100644 --- a/retrofit/src/main/java/retrofit2/Utils.java +++ b/retrofit/src/main/java/retrofit2/Utils.java @@ -82,7 +82,9 @@ final class Utils { if (!(b instanceof ParameterizedType)) return false; ParameterizedType pa = (ParameterizedType) a; ParameterizedType pb = (ParameterizedType) b; - return equal(pa.getOwnerType(), pb.getOwnerType()) + Object ownerA = pa.getOwnerType(); + Object ownerB = pb.getOwnerType(); + return (ownerA == ownerB || (ownerA != null && ownerA.equals(ownerB))) && pa.getRawType().equals(pb.getRawType()) && Arrays.equals(pa.getActualTypeArguments(), pb.getActualTypeArguments()); @@ -155,14 +157,6 @@ final class Utils { throw new NoSuchElementException(); } - private static boolean equal(Object a, Object b) { - return a == b || (a != null && a.equals(b)); - } - - static int hashCodeOrZero(Object o) { - return o != null ? o.hashCode() : 0; - } - static String typeToString(Type type) { return type instanceof Class ? ((Class) type).getName() : type.toString(); } @@ -330,7 +324,7 @@ final class Utils { return paramType; } - static boolean hasUnresolvableType(Type type) { + static boolean hasUnresolvableType(@Nullable Type type) { if (type instanceof Class) { return false; } @@ -370,7 +364,7 @@ final class Utils { private final Type rawType; private final Type[] typeArguments; - ParameterizedTypeImpl(Type ownerType, Type rawType, Type... typeArguments) { + ParameterizedTypeImpl(@Nullable Type ownerType, Type rawType, Type... typeArguments) { // Require an owner type if the raw type needs it. if (rawType instanceof Class && (ownerType == null) != (((Class) rawType).getEnclosingClass() == null)) { @@ -404,7 +398,9 @@ final class Utils { } @Override public int hashCode() { - return Arrays.hashCode(typeArguments) ^ rawType.hashCode() ^ hashCodeOrZero(ownerType); + return Arrays.hashCode(typeArguments) + ^ rawType.hashCode() + ^ (ownerType != null ? ownerType.hashCode() : 0); } @Override public String toString() {