Crash on organising files
- Dominant language
- Kotlin
- Stars
- 5.6k
- Forks
- 2k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 92
Description
### ⚠️ Before posting ⚠️
- [x] This is a **bug**, not a question or an enhancement.
- [x] I've [searched for similar issues](https://github.com/nextcloud/android/issues) and didn't find a duplicate.
- [x] I've written a clear and descriptive title for this issue, not just "Bug" or "Crash".
- [x] I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
### Steps to reproduce
Enable auto-upload for a folder, forget to tick "organise by date".
Change your mind when there are 6000 files in the directory.
Notice that files don't get resynced retrospectively, set out to do some by hand.
Create subdirectories for year/month manually.
Start moving files in batches from the auto-synced root folder.
### Expected behaviour
Files get moved to the appropriate directory. I can observe their new placement.
### Actual behaviour
Client crashes and offers me to take this bug report.
### Android version
15
### Device brand and model
Sony Xperia 10 V
### Stock or custom OS?
Stock
### Nextcloud android app version
34.0.0
### Nextcloud server version
32
### Using a reverse proxy?
Yes
### Android logs
### Cause of error
```java
Exception in thread "Thread-103" java.lang.IllegalStateException: Couldn't read row 574, col 20 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
at android.database.CursorWindow.nativeGetLong(Native Method)
at android.database.CursorWindow.getLong(CursorWindow.java:547)
at android.database.AbstractWindowedCursor.getLong(AbstractWindowedCursor.java:78)
at androidx.sqlite.driver.SupportSQLiteStatement$RowSQLiteStatement.getLong(SupportSQLiteStatement.android.kt:363)
at com.nextcloud.client.database.dao.FileDao_Impl.getFolderContent$lambda$0(FileDao_Impl.kt:3209)
at com.nextcloud.client.database.dao.FileDao_Impl$$ExternalSyntheticLambda6.invoke(D8$$SyntheticClass:0)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invokeSuspend(DBUtil.kt:173)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invoke(Unknown Source:8)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1$invokeSuspend$$inlined$internalPerform$1.invoke(Unknown Source:4)
at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invokeSuspend(PassthroughConnectionPool.kt:59)
at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invoke(Unknown Source:8)
at androidx.room.coroutines.PassthroughConnectionPool$useConnection$2.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:42)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:164)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
at androidx.room.coroutines.PassthroughConnectionPool.useConnection(PassthroughConnectionPool.kt:59)
at androidx.room.RoomConnectionManager.useConnection(RoomConnectionManager.android.kt:138)
at androidx.room.RoomDatabase.useConnection(RoomDatabase.android.kt:619)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invokeSuspend(DBUtil.android.kt:260)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invoke(Unknown Source:8)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1$1.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:42)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:156)
at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invokeSuspend(DBUtil.android.kt:72)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(Unknown Source:8)
at androidx.room.util.DBUtil__DBUtil_androidKt$performBlocking$1.invoke(Unknown Source:4)
at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invokeSuspend(RunBlockingUninterruptible.android.kt:52)
at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(Unknown Source:8)
at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1$1.invoke(Unknown Source:4)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:20)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:360)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:124)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:52)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source:1)
at androidx.room.coroutines.RunBlockingUninterruptible_androidKt$runBlockingUninterruptible$1.invokeSuspend(RunBlockingUninterruptible.android.kt:51)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:34)
at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:101)
at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:263)
at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69)
at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:1)
at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:47)
at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:1)
at androidx.room.coroutines.RunBlockingUninterruptible_androidKt.runBlockingUninterruptible(RunBlockingUninterruptible.android.kt:45)
at androidx.room.util.DBUtil__DBUtil_androidKt.performBlocking(DBUtil.android.kt:71)
at androidx.room.util.DBUtil.performBlocking(Unknown Source:1)
at com.nextcloud.client.database.dao.FileDao_Impl.getFolderContent(FileDao_Impl.kt:3028)
at com.owncloud.android.datamodel.FileDataStorageManager.getFolderContent(FileDataStorageManager.java:1302)
at com.owncloud.android.datamodel.FileDataStorageManager.getFolderContent(FileDataStorageManager.java:483)
at com.owncloud.android.operations.RefreshFolderOperation.synchronizeData(RefreshFolderOperation.java:558)
at com.owncloud.android.operations.RefreshFolderOperation.fetchAndSyncRemoteFolder(RefreshFolderOperation.java:464)
at com.owncloud.android.operations.RefreshFolderOperation.run(RefreshFolderOperation.java:275)
at com.owncloud.android.lib.common.operations.RemoteOperation.run(RemoteOperation.java:387)
at java.lang.Thread.run(Thread.java:1564)
```
### App information
* ID: `com.nextcloud.client`
* Version: `340000090`
* Build flavor: `gplay`
### Device information
* Brand: `Sony`
* Device: `XQ-DC54`
* Model: `XQ-DC54`
* Id: `68.2.A.3.47`
* Product: `XQ-DC54_EEA`
### Firmware
* SDK: `35`
* Release: `15`
* Incremental: `068002A003004700521798587`
### Server error logs
```bash
```
### Additional information
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.