Catch possible exception during push message parsing

E AndroidRuntime: FATAL EXCEPTION: main
E AndroidRuntime: Process: de.spiritcroc.riotx, PID: 26135
E AndroidRuntime: java.lang.RuntimeException: Unable to start receiver im.vector.app.core.pushers.VectorMessagingReceiver: com.squareup.moshi.JsonDataException: Expected BEGIN_OBJECT but was NUMBER at path $
E AndroidRuntime: 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4384)
E AndroidRuntime: 	at android.app.ActivityThread.access$1600(ActivityThread.java:256)
E AndroidRuntime: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2102)
E AndroidRuntime: 	at android.os.Handler.dispatchMessage(Handler.java:106)
E AndroidRuntime: 	at android.os.Looper.loopOnce(Looper.java:201)
E AndroidRuntime: 	at android.os.Looper.loop(Looper.java:288)
E AndroidRuntime: 	at android.app.ActivityThread.main(ActivityThread.java:7870)
E AndroidRuntime: 	at java.lang.reflect.Method.invoke(Native Method)
E AndroidRuntime: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E AndroidRuntime: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E AndroidRuntime: Caused by: com.squareup.moshi.JsonDataException: Expected BEGIN_OBJECT but was NUMBER at path $
E AndroidRuntime: 	at com.squareup.moshi.JsonUtf8Reader.beginObject(JsonUtf8Reader.java:6)
E AndroidRuntime: 	at im.vector.app.core.pushers.UnifiedPushMessageJsonAdapter.fromJson(UnifiedPushMessageJsonAdapter.kt:2)
E AndroidRuntime: 	at com.squareup.moshi.internal.NullSafeJsonAdapter.fromJson(NullSafeJsonAdapter.java:3)
E AndroidRuntime: 	at com.squareup.moshi.JsonAdapter.fromJson(JsonAdapter.java:3)
E AndroidRuntime: 	at im.vector.app.core.pushers.VectorMessagingReceiverKt$upHandler$1.onMessage(VectorMessagingReceiver.kt:17)
E AndroidRuntime: 	at im.vector.app.core.pushers.InjectedMessagingReceiver.onReceive(VectorMessagingReceiver.kt:49)
E AndroidRuntime: 	at im.vector.app.core.pushers.Hilt_VectorMessagingReceiver.onReceive(Hilt_VectorMessagingReceiver.java:7)
E AndroidRuntime: 	at android.app.ActivityThread.handleReceiver(ActivityThread.java:4375)
E AndroidRuntime: 	... 9 more

Change-Id: I7df9744b5987d681502638640f0fd8ee276fefa8
This commit is contained in:
SpiritCroc 2022-04-13 09:25:56 +02:00
parent 753a675914
commit fb68ba92fa

View File

@ -152,14 +152,19 @@ val upHandler = object: VectorMessagingReceiverHandler {
.build()
lateinit var notification: Notification
if (UPHelper.isEmbeddedDistributor(context!!)) {
notification = moshi.adapter(Notification::class.java)
.fromJson(message) ?: return
} else {
val data = moshi.adapter(UnifiedPushMessage::class.java)
.fromJson(message) ?: return
notification = data.notification
notification.unread = notification.counts.unread
try {
if (UPHelper.isEmbeddedDistributor(context!!)) {
notification = moshi.adapter(Notification::class.java)
.fromJson(message) ?: return
} else {
val data = moshi.adapter(UnifiedPushMessage::class.java)
.fromJson(message) ?: return
notification = data.notification
notification.unread = notification.counts.unread
}
} catch (t: Throwable) {
Timber.e(t, "Error parsing push notification")
return
}
// Diagnostic Push