johanw666 / Signal-Android

Fork from a private messenger for Android with extra options added: full backup and (partial, ony text) xml backup of messages. Restore can happen at any time, not only after a fresh install. Import SMS database. Import of (unencrypted) WhatsApp databases. Removed apk expire. Choose between passphrase protection and the Android screenlock. Choice for the backup location (internal or removable storage on Android < 11 (on 11 and higher this is already possible)). Set the maptype in the place picker. Option to treat view-once media as normal media. Option to ignore remote deletion. Choose between FCM or websocket notification delivery.
https://johanw.home.xs4all.nl/Signal/signal-jw.html
GNU Affero General Public License v3.0
246 stars 16 forks source link

Import of Plaintext Backup Fails #70

Closed TheFrozenDuck closed 1 year ago

TheFrozenDuck commented 1 year ago

When trying to import a plaintext backup made by the app I get following error.:

11-09 00:53:09.160 13755 13784 W PlaintextBackupImporter: importPlaintext()
11-09 00:53:09.161 13755 13794 D OpenGLRenderer: endAllActiveAnimators on 0xb400007a05e34320 (RippleDrawable) with handle 0xb400007915918300
--------- beginning of crash
11-09 00:53:09.171 13755 13784 E AndroidRuntime: FATAL EXCEPTION: AsyncTask #1
11-09 00:53:09.171 13755 13784 E AndroidRuntime: Process: org.thoughtcrime.securesms, PID: 13755
11-09 00:53:09.171 13755 13784 E AndroidRuntime: java.lang.RuntimeException: An error occurred while executing doInBackground()
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at android.os.AsyncTask$4.done(AsyncTask.java:415)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.FutureTask.run(FutureTask.java:271)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.lang.Thread.run(Thread.java:920)
11-09 00:53:09.171 13755 13784 E AndroidRuntime: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at org.thoughtcrime.securesms.database.PlaintextBackupImporter.importPlaintextFromSd(PlaintextBackupImporter.java:47)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at org.thoughtcrime.securesms.ImportExportFragment$ImportPlaintextBackupTask.doInBackground(ImportExportFragment.java:321)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at org.thoughtcrime.securesms.ImportExportFragment$ImportPlaintextBackupTask.doInBackground(ImportExportFragment.java:279)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at android.os.AsyncTask$3.call(AsyncTask.java:394)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
11-09 00:53:09.171 13755 13784 E AndroidRuntime:        ... 3 more
11-09 00:53:09.172 13755 13784 E SignalUncaughtException: java.lang.RuntimeException: An error occurred while executing doInBackground()
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at android.os.AsyncTask$4.done(AsyncTask.java:415)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.FutureTask.run(FutureTask.java:271)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.lang.Thread.run(Thread.java:920)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at [[ ↑↑ Original Trace ↑↑ ]].(:0)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at [[ ↓↓ Inferred Trace ↓↓ ]].(:0)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.signal.core.util.concurrent.TracingExecutor.execute(TracingExecutor.kt:11)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.recipients.LiveRecipientCache.getLive(LiveRecipientCache.java:81)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.recipients.Recipient.live(Recipient.java:148)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.recipients.Recipient.resolved(Recipient.java:177)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.recipients.Recipient.external(Recipient.java:362)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.database.PlaintextBackupImporter.importPlaintextFromSd(PlaintextBackupImporter.java:46)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.ImportExportFragment$ImportPlaintextBackupTask.doInBackground(ImportExportFragment.java:321)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.ImportExportFragment$ImportPlaintextBackupTask.doInBackground(ImportExportFragment.java:279)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at android.os.AsyncTask$3.call(AsyncTask.java:394)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at java.lang.Thread.run(Thread.java:920)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException: Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'long java.lang.Long.longValue()' on a null object reference
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       at org.thoughtcrime.securesms.database.PlaintextBackupImporter.importPlaintextFromSd(PlaintextBackupImporter.java:47)
11-09 00:53:09.172 13755 13784 E SignalUncaughtException:       ... 7 more
11-09 00:53:09.179 13755 13784 I JobManager: Successfully flushed.
11-09 00:53:09.198 13755 13784 I Process : Sending signal. PID: 13755 SIG: 9

Sadly I do not know the version I created the backup with but here is a small snippet:


<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!-- File Created By Signal -->
<smses count="1">
 <sms protocol="0" address="SIGNAL" contact_name="SIGNAL" date="1612711009051" readable_date="Sun, 07 Feb 2021 16:16:49 CET" type="1" subject="null" body="SIGNAL: Your code is: xyz-abc toa="null" sc_toa="null" service_center="null" read="1" status="-1" locked="0" transport="SMS" />
</smses>
johanw666 commented 1 year ago

This should be fixed in later versions, the plaintext import got an overhawl under the hood in 6.7.