From c50e199b76958a7e43c05ea797c5afbaafb0f508 Mon Sep 17 00:00:00 2001 From: davigonz Date: Fri, 11 Oct 2019 14:02:24 +0200 Subject: [PATCH] Fix null error in http interceptors --- .../android/lib/common/http/HttpClient.java | 11 +++++++---- .../http/interceptors/HttpInterceptor.java | 16 +++++++++++----- 2 files changed, 18 insertions(+), 9 deletions(-) diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java index b0b3e7a2..9564922d 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/HttpClient.java @@ -156,10 +156,13 @@ public class HttpClient { * @param headerValue */ public static void addHeaderForAllRequests(String headerName, String headerValue) { - getOkHttpInterceptor() - .addRequestInterceptor( - new RequestHeaderInterceptor(headerName, headerValue) - ); + HttpInterceptor httpInterceptor = getOkHttpInterceptor(); + + if(getOkHttpInterceptor() != null) { + httpInterceptor.addRequestInterceptor( + new RequestHeaderInterceptor(headerName, headerValue) + ); + } } public static void deleteHeaderForAllRequests(String headerName) { diff --git a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/interceptors/HttpInterceptor.java b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/interceptors/HttpInterceptor.java index 993919b9..55abe84d 100644 --- a/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/interceptors/HttpInterceptor.java +++ b/owncloudComLibrary/src/main/java/com/owncloud/android/lib/common/http/interceptors/HttpInterceptor.java @@ -46,14 +46,20 @@ public class HttpInterceptor implements Interceptor { public Response intercept(Chain chain) throws IOException { Request request = chain.request(); - for (RequestInterceptor interceptor : mRequestInterceptors) { - request = interceptor.intercept(request); + ListIterator requestInterceptorIterator = mRequestInterceptors.listIterator(); + + while (requestInterceptorIterator.hasNext()) { + RequestInterceptor currentRequestInterceptor = requestInterceptorIterator.next(); + request = currentRequestInterceptor.intercept(request); } Response response = chain.proceed(request); - for (ResponseInterceptor interceptor : mResponseInterceptors) { - response = interceptor.intercept(response); + ListIterator responseInterceptorIterator = mResponseInterceptors.listIterator(); + + while (responseInterceptorIterator.hasNext()) { + ResponseInterceptor currentResponseInterceptor = responseInterceptorIterator.next(); + response = currentResponseInterceptor.intercept(response); } return response; @@ -107,4 +113,4 @@ public class HttpInterceptor implements Interceptor { public interface ResponseInterceptor { Response intercept(Response response) throws IOException; } -} \ No newline at end of file +}