From b032db80bc24692a31c305fb98e1f362ec73570e Mon Sep 17 00:00:00 2001 From: "Nelson R. Perez" Date: Thu, 6 Jun 2019 15:59:55 -0500 Subject: [PATCH] Preventing a NPE - We're now checking that there is a selected node before trying to use it, and in case there is none we schedule a retry in DEFAULT_INITIAL_DELAY ms. --- .../agorise/graphenej/api/android/NetworkService.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/graphenej/src/main/java/cy/agorise/graphenej/api/android/NetworkService.java b/graphenej/src/main/java/cy/agorise/graphenej/api/android/NetworkService.java index 8010e11..d637e6c 100644 --- a/graphenej/src/main/java/cy/agorise/graphenej/api/android/NetworkService.java +++ b/graphenej/src/main/java/cy/agorise/graphenej/api/android/NetworkService.java @@ -229,9 +229,13 @@ public class NetworkService extends Service { .writeTimeout(5, TimeUnit.SECONDS) .build(); mSelectedNode = nodeProvider.getBestNode(); - Log.v(TAG,"connect.url: "+ mSelectedNode.getUrl()+", latency: "+mSelectedNode.getLatencyValue()); - Request request = new Request.Builder().url(mSelectedNode.getUrl()).build(); - mWebSocket = client.newWebSocket(request, mWebSocketListener); + if(mSelectedNode != null){ + Request request = new Request.Builder().url(mSelectedNode.getUrl()).build(); + mWebSocket = client.newWebSocket(request, mWebSocketListener); + }else{ + // If no node could be found yet, schedule a new attempt in DEFAULT_INITIAL_DELAY ms + mHandler.postDelayed(mConnectAttempt, DEFAULT_INITIAL_DELAY); + } } public long sendMessage(String message){