From f7b3e0b81c2bc4e4e2e0697d1f569c75a4c1f0b2 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Sat, 16 Nov 2013 19:32:30 +0200 Subject: [PATCH] finish(): Check for app non-null before accessing it. finish() may be called from reset() which sets app to null. This issues hits for example when clicking on wiki-link of an app which doesn't currenty exist in client index, throws: E/AndroidRuntime(17630): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.fdroid.fdroid/org.fdroid.fdroid.AppDetails}: java.lang.NullPointerException E/AndroidRuntime(17630): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) E/AndroidRuntime(17630): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) E/AndroidRuntime(17630): at android.app.ActivityThread.access$1500(ActivityThread.java:117) E/AndroidRuntime(17630): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) E/AndroidRuntime(17630): at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime(17630): at android.os.Looper.loop(Looper.java:130) E/AndroidRuntime(17630): at android.app.ActivityThread.main(ActivityThread.java:3691) E/AndroidRuntime(17630): at java.lang.reflect.Method.invokeNative(Native Method) E/AndroidRuntime(17630): at java.lang.reflect.Method.invoke(Method.java:507) E/AndroidRuntime(17630): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) E/AndroidRuntime(17630): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) E/AndroidRuntime(17630): at dalvik.system.NativeStart.main(Native Method) E/AndroidRuntime(17630): Caused by: java.lang.NullPointerException E/AndroidRuntime(17630): at org.fdroid.fdroid.AppDetails.finish(AppDetails.java:1012) E/AndroidRuntime(17630): at org.fdroid.fdroid.AppDetails.reset(AppDetails.java:353) E/AndroidRuntime(17630): at org.fdroid.fdroid.AppDetails.onCreate(AppDetails.java:243) E/AndroidRuntime(17630): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) E/AndroidRuntime(17630): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) --- src/org/fdroid/fdroid/AppDetails.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/org/fdroid/fdroid/AppDetails.java b/src/org/fdroid/fdroid/AppDetails.java index 445e3cd29..c0966280b 100644 --- a/src/org/fdroid/fdroid/AppDetails.java +++ b/src/org/fdroid/fdroid/AppDetails.java @@ -1009,8 +1009,8 @@ public class AppDetails extends ListActivity { @Override public void finish() { - if (app.ignoreAllUpdates != startingIgnoreAll - || app.ignoreThisUpdate != startingIgnoreThis) { + if (app != null && (app.ignoreAllUpdates != startingIgnoreAll + || app.ignoreThisUpdate != startingIgnoreThis)) { try { DB db = DB.getDB(); db.setIgnoreUpdates(app.id,