From 70da6eaa1204540269a71f6e658c7f9efb084090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Mart=C3=AD?= Date: Sun, 24 Apr 2016 14:57:32 +0100 Subject: [PATCH] Fix NPE when clicking on missing app links This happened to me when I clicked on an app link for a new app which was already in the repo, but I had not ran an index update yet since the app got built. Stack trace prior to the fix follows. java.lang.RuntimeException: Unable to destroy activity {org.fdroid.fdroid/org.fdroid.fdroid.AppDetails}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3865) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3883) at android.app.ActivityThread.-wrap5(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1417) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5461) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v4.content.LocalBroadcastManager.unregisterReceiver(android.content.BroadcastReceiver)' on a null object reference at org.fdroid.fdroid.AppDetails.unregisterDownloaderReceivers(AppDetails.java:469) at org.fdroid.fdroid.AppDetails.onDestroy(AppDetails.java:569) at android.app.Activity.performDestroy(Activity.java:6422) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1143) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3852) ... 9 more --- app/src/main/java/org/fdroid/fdroid/AppDetails.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/org/fdroid/fdroid/AppDetails.java b/app/src/main/java/org/fdroid/fdroid/AppDetails.java index 073a86a14..c29e6ae36 100644 --- a/app/src/main/java/org/fdroid/fdroid/AppDetails.java +++ b/app/src/main/java/org/fdroid/fdroid/AppDetails.java @@ -466,6 +466,9 @@ public class AppDetails extends AppCompatActivity { } private void unregisterDownloaderReceivers() { + if (localBroadcastManager == null) { + return; + } localBroadcastManager.unregisterReceiver(startedReceiver); localBroadcastManager.unregisterReceiver(progressReceiver); localBroadcastManager.unregisterReceiver(completeReceiver);