never have null Apks in InstallManagerService
In order to avoid having null guards making the code ugly, use a "blank" instance of Apk which will work for the various comparisons. This fixes this crash: java.lang.NullPointerException at org.fdroid.fdroid.installer.InstallManagerService$4.onReceive(InstallManagerService.java:243) at android.support.v4.content.LocalBroadcastManager.executePendingBroadcasts(LocalBroadcastManager.java:297) at android.support.v4.content.LocalBroadcastManager.access$000(LocalBroadcastManager.java:46) at android.support.v4.content.LocalBroadcastManager$1.handleMessage(LocalBroadcastManager.java:116) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5001) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) at dalvik.system.NativeStart.main(Native Method)
This commit is contained in:
parent
caec0c3eaa
commit
558c0a3e0e
@ -363,9 +363,10 @@ public class InstallManagerService extends Service {
|
|||||||
*/
|
*/
|
||||||
private static Apk removeFromActive(String urlString) {
|
private static Apk removeFromActive(String urlString) {
|
||||||
Apk apk = ACTIVE_APKS.remove(urlString);
|
Apk apk = ACTIVE_APKS.remove(urlString);
|
||||||
if (apk != null) {
|
if (apk == null) {
|
||||||
ACTIVE_APPS.remove(apk.packageName);
|
return new Apk();
|
||||||
}
|
}
|
||||||
|
ACTIVE_APPS.remove(apk.packageName);
|
||||||
return apk;
|
return apk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user