From 945dbdbd3c902b94a6a2ede95b8ea2112c865d3c Mon Sep 17 00:00:00 2001 From: Hans-Christoph Steiner Date: Tue, 25 Dec 2018 23:32:14 +0100 Subject: [PATCH] prevent NPE in Bluetooth swap ACRA E ACRA caught a IllegalStateException for org.fdroid.fdroid.debug E java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.Worker thread. E at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:62) E at android.os.Handler.handleCallback(Handler.java:751) E at android.os.Handler.dispatchMessage(Handler.java:95) E at android.os.Looper.loop(Looper.java:154) E at android.app.ActivityThread.main(ActivityThread.java:6128) E at java.lang.reflect.Method.invoke(Native Method) E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889) E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:779) E Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference E at org.fdroid.fdroid.localrepo.peers.BonjourPeer.hashCode(BonjourPeer.java:41) E at sun.misc.Hashing.singleWordWangJenkinsHash(Hashing.java:48) E at java.util.HashMap.put(HashMap.java:423) E at java.util.HashSet.add(HashSet.java:217) E at rx.internal.operators.OperatorDistinct$1.onNext(OperatorDistinct.java:62) E at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber.pollQueue(OperatorObserveOn.java:202) E at rx.internal.operators.OperatorObserveOn$ObserveOnSubscriber$2.call(OperatorObserveOn.java:162) E at rx.internal.schedulers.ScheduledAction.run(ScheduledAction.java:55) E ... 7 more --- .../java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java index ae09329d6..0552ebf67 100644 --- a/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java +++ b/app/src/full/java/org/fdroid/fdroid/localrepo/peers/BonjourPeer.java @@ -38,7 +38,11 @@ public class BonjourPeer extends WifiPeer { @Override public int hashCode() { - return getFingerprint().hashCode(); + String fingerprint = getFingerprint(); + if (fingerprint == null) { + return 0; + } + return fingerprint.hashCode(); } @Override