TeamAmaze / AmazeFileManager

Material design file manager for Android
https://teamamaze.xyz
GNU General Public License v3.0
5.34k stars 1.57k forks source link

`StringIndexOutOfBoundsException` on `UtilitiesDatabase#migratePasswordInUris` #3488

Closed amaze-issue-automation[bot] closed 2 years ago

amaze-issue-automation[bot] commented 2 years ago

Issue explanation (write below this line)

Exception

io.reactivex.exceptions.OnErrorNotImplementedException: The exception was not handled due to missing onError handler in the subscribe() method call. Further reading: https://github.com/ReactiveX/RxJava/wiki/Error-Handling | java.lang.StringIndexOutOfBoundsException: String index out of range: -7
    at io.reactivex.internal.observers.EmptyCompletableObserver.onError(EmptyCompletableObserver.java:50)
    at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.onError(CompletableSubscribeOn.java:74)
    at io.reactivex.internal.operators.completable.CompletableAndThenCompletable$SourceObserver.onError(CompletableAndThenCompletable.java:62)
    at io.reactivex.internal.operators.completable.CompletableFromCallable.subscribeActual(CompletableFromCallable.java:40)
    at io.reactivex.Completable.subscribe(Completable.java:2309)
    at io.reactivex.internal.operators.completable.CompletableAndThenCompletable.subscribeActual(CompletableAndThenCompletable.java:35)
    at io.reactivex.Completable.subscribe(Completable.java:2309)
    at io.reactivex.internal.operators.completable.CompletableSubscribeOn$SubscribeOnObserver.run(CompletableSubscribeOn.java:64)
    at io.reactivex.Scheduler$DisposeTask.run(Scheduler.java:578)
    at io.reactivex.internal.schedulers.ScheduledRunnable.run(ScheduledRunnable.java:66)
    at io.reactivex.internal.schedulers.ScheduledRunnable.call(ScheduledRunnable.java:57)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:920)
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: -7
    at java.lang.String.substring(String.java:2064)
    at com.amaze.filemanager.database.UtilitiesDatabase$Companion.migratePasswordInUris(UtilitiesDatabase.kt:428)
    at com.amaze.filemanager.database.UtilitiesDatabase$Companion.access$migratePasswordInUris(UtilitiesDatabase.kt:109)
    at com.amaze.filemanager.database.UtilitiesDatabase$Companion$MIGRATION_5_6$1.migrate(UtilitiesDatabase.kt:474)
    at androidx.room.RoomOpenHelper.onUpgrade(RoomOpenHelper.java:99)
    at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.java:183)
    at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416)
    at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
    at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableSupportDatabase(FrameworkSQLiteOpenHelper.java:151)
    at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.java:112)
    at androidx.room.RoomDatabase.inTransaction(RoomDatabase.java:706)
    at androidx.room.RoomDatabase.assertNotSuspendingTransaction(RoomDatabase.java:483)
    at androidx.room.RoomDatabase.compileStatement(RoomDatabase.java:542)
    at androidx.room.SharedSQLiteStatement.createNewStatement(SharedSQLiteStatement.java:65)
    at androidx.room.SharedSQLiteStatement.getStmt(SharedSQLiteStatement.java:72)
    at androidx.room.SharedSQLiteStatement.acquire(SharedSQLiteStatement.java:87)
    at com.amaze.filemanager.database.daos.HistoryEntryDao_Impl$7.call(HistoryEntryDao_Impl.java:129)
    at com.amaze.filemanager.database.daos.HistoryEntryDao_Impl$7.call(HistoryEntryDao_Impl.java:126)
    at io.reactivex.internal.operators.completable.CompletableFromCallable.subscribeActual(CompletableFromCallable.java:36)
    ... 12 more


TranceLove commented 2 years ago

Same problem still occurred on 3.8.2 update.

  1. Install 3.7.2
  2. Install Cloud plugin
  3. Setup Google drive connection
  4. Upgrade to 3.8.2
  5. Crash