From ea3da82e2cc09c30eb816128c8b8e394e26ce458 Mon Sep 17 00:00:00 2001 From: cyBerta Date: Thu, 14 Mar 2019 01:31:59 +0100 Subject: [PATCH] avoid npe's in GenerateInfoWindowTask --- .../securesms/map/GenerateInfoWindowTask.java | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/org/thoughtcrime/securesms/map/GenerateInfoWindowTask.java b/src/org/thoughtcrime/securesms/map/GenerateInfoWindowTask.java index 34a650abb..4391df9df 100644 --- a/src/org/thoughtcrime/securesms/map/GenerateInfoWindowTask.java +++ b/src/org/thoughtcrime/securesms/map/GenerateInfoWindowTask.java @@ -86,17 +86,26 @@ public class GenerateInfoWindowTask extends AsyncTask, HashMa @Override protected void onProgressUpdate(HashMap... imagesMap) { - callbackRef.get().setInfoWindowResults(imagesMap[0]); - callbackRef.get().refreshSource(contactId); - Log.d(TAG, "updating progress for contact: " + contactId); + try { + callbackRef.get().setInfoWindowResults(imagesMap[0]); + callbackRef.get().refreshSource(contactId); + Log.d(TAG, "updating progress for contact: " + contactId); + } catch (NullPointerException npe) { + npe.printStackTrace(); + Log.e(TAG, "Callback was GC'ed before task finished."); + } } @Override protected void onPostExecute(HashMap bitmapHashMap) { - GenerateInfoWindowCallback callback = callbackRef.get(); - if (callback != null && bitmapHashMap != null && bitmapHashMap.size() > 0) { - callback.setInfoWindowResults(bitmapHashMap); - callback.refreshSource(contactId); + try { + if (bitmapHashMap.size() > 0) { + callbackRef.get().setInfoWindowResults(bitmapHashMap); + callbackRef.get().refreshSource(contactId); + } + } catch (NullPointerException npe) { + npe.printStackTrace(); + Log.e(TAG, "Callback was GC'ed before task finished."); } } } \ No newline at end of file