From d7413697b9ed4d3cec694d34a051345660e5bdff Mon Sep 17 00:00:00 2001 From: Gavriil Sitnikov Date: Mon, 23 Nov 2015 20:07:03 +0300 Subject: [PATCH] fix for nullable responses --- .../components/requests/AbstractHttpRequest.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/roboswag/components/requests/AbstractHttpRequest.java b/src/main/java/org/roboswag/components/requests/AbstractHttpRequest.java index d0cbf6e..f334fe0 100644 --- a/src/main/java/org/roboswag/components/requests/AbstractHttpRequest.java +++ b/src/main/java/org/roboswag/components/requests/AbstractHttpRequest.java @@ -20,6 +20,7 @@ package org.roboswag.components.requests; import android.support.annotation.NonNull; +import android.support.annotation.Nullable; import android.util.Log; import com.fasterxml.jackson.core.JsonProcessingException; @@ -108,7 +109,7 @@ public abstract class AbstractHttpRequest { } } - @NonNull + @Nullable public T executeSync() throws Exception { final Request request = getRequest(); if (LcHelper.getLogLevel() <= Log.DEBUG) { @@ -123,7 +124,7 @@ public abstract class AbstractHttpRequest { Lc.d("Response for: %s has code %s and content: %s", request.url(), response.code(), new String(bytes, charset)); } final ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes); - T result; + final T result; try { result = getParser().parseAndClose(byteArrayInputStream, charset, responseResultType); } catch (RuntimeException throwable) { @@ -132,10 +133,14 @@ public abstract class AbstractHttpRequest { throw new ShouldNotHappenException("Parsing exception during response parsing " + getUrl(), ex); } if (result == null) { - throw new ShouldNotHappenException("Response is null for request " + getUrl()); + if (getResponseResultType() != Void.class) { + throw new ShouldNotHappenException("Response is null for request " + getUrl()); + } else { + return null; + } + } else { + return handleResponse(result); } - result = handleResponse(result); - return result; } @NonNull