You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's a StrictMode violation when viewing the hierarchy if there's a filtered entity select on screen (as the hierarchy loads select choices on the UI thread).
Steps to reproduce the problem
Add a form with filtered selects that uses an entity instance
Open the form and navigate to the hierarchy with that question
Expected behavior
The app shouldn't crash!
We'll probably want to add specific StrictMode calls to DatabaseEntitiesRepository (like we do with DatabaseInstancesRepository) to fix this as the real™️ fix of reworking the hierarchy is probably a focus for another release.
Other information
Stacktrace:
java.lang.RuntimeException: StrictMode ThreadPolicy violation
at android.os.StrictMode$AndroidBlockGuardPolicy.onThreadPolicyViolation(StrictMode.java:1876)
at android.os.StrictMode$AndroidBlockGuardPolicy.handleViolationWithTimingAttempt(StrictMode.java:1733)
at android.os.StrictMode$AndroidBlockGuardPolicy.startHandlingViolationException(StrictMode.java:1704)
at android.os.StrictMode$AndroidBlockGuardPolicy.onCustomSlowCall(StrictMode.java:1626)
at android.os.StrictMode.noteSlowCall(StrictMode.java:2694)
at org.odk.collect.db.sqlite.DatabaseConnection.getReadableDatabase(DatabaseConnection.kt:36)
at org.odk.collect.android.database.entities.DatabaseEntitiesRepository.listExists(DatabaseEntitiesRepository.kt:317)
at org.odk.collect.android.database.entities.DatabaseEntitiesRepository.getAllByProperty(DatabaseEntitiesRepository.kt:224)
at org.odk.collect.entities.javarosa.intance.LocalEntitiesInstanceAdapter.queryEq(LocalEntitiesInstanceAdapter.kt:57)
at org.odk.collect.entities.javarosa.filter.LocalEntitiesFilterStrategy.filter(LocalEntitiesFilterStrategy.kt:46)
at org.javarosa.core.model.condition.EvaluationContext.filterWithPredicate(EvaluationContext.java:382)
at org.javarosa.core.model.condition.EvaluationContext.filterWithPredicate(EvaluationContext.java:377)
at org.javarosa.core.model.condition.EvaluationContext.expandReferenceAccumulator(EvaluationContext.java:343)
at org.javarosa.core.model.condition.EvaluationContext.expandReference(EvaluationContext.java:250)
at org.javarosa.core.model.condition.EvaluationContext.expandReference(EvaluationContext.java:219)
at org.javarosa.xpath.expr.XPathPathExprEval.eval(XPathPathExprEval.java:34)
at org.javarosa.xpath.expr.XPathPathExpr.eval(XPathPathExpr.java:213)
at org.javarosa.xpath.XPathConditional.evalNodeset(XPathConditional.java:94)
at org.javarosa.core.model.ItemsetBinding.getChoices(ItemsetBinding.java:125)
at org.javarosa.form.api.FormEntryPrompt.getSelectChoices(FormEntryPrompt.java:222)
at org.javarosa.form.api.FormEntryPrompt.getAnswerValue(FormEntryPrompt.java:98)
at org.javarosa.form.api.FormEntryPrompt.getAnswerText(FormEntryPrompt.java:154)
at org.odk.collect.android.formhierarchy.QuestionAnswerProcessor.getQuestionAnswer(QuestionAnswerProcessor.kt:28)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.refreshView(FormHierarchyActivity.java:672)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.refreshView(FormHierarchyActivity.java:591)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.onCreate(FormHierarchyActivity.java:278)
at android.app.Activity.performCreate(Activity.java:8054)
at android.app.Activity.performCreate(Activity.java:8034)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
Caused by: android.os.strictmode.CustomViolation: Accessing readable DB
at android.os.StrictMode$AndroidBlockGuardPolicy.onCustomSlowCall(StrictMode.java:1626)
at android.os.StrictMode.noteSlowCall(StrictMode.java:2694)
at org.odk.collect.db.sqlite.DatabaseConnection.getReadableDatabase(DatabaseConnection.kt:36)
at org.odk.collect.android.database.entities.DatabaseEntitiesRepository.listExists(DatabaseEntitiesRepository.kt:317)
at org.odk.collect.android.database.entities.DatabaseEntitiesRepository.getAllByProperty(DatabaseEntitiesRepository.kt:224)
at org.odk.collect.entities.javarosa.intance.LocalEntitiesInstanceAdapter.queryEq(LocalEntitiesInstanceAdapter.kt:57)
at org.odk.collect.entities.javarosa.filter.LocalEntitiesFilterStrategy.filter(LocalEntitiesFilterStrategy.kt:46)
at org.javarosa.core.model.condition.EvaluationContext.filterWithPredicate(EvaluationContext.java:382)
at org.javarosa.core.model.condition.EvaluationContext.filterWithPredicate(EvaluationContext.java:377)
at org.javarosa.core.model.condition.EvaluationContext.expandReferenceAccumulator(EvaluationContext.java:343)
at org.javarosa.core.model.condition.EvaluationContext.expandReference(EvaluationContext.java:250)
at org.javarosa.core.model.condition.EvaluationContext.expandReference(EvaluationContext.java:219)
at org.javarosa.xpath.expr.XPathPathExprEval.eval(XPathPathExprEval.java:34)
at org.javarosa.xpath.expr.XPathPathExpr.eval(XPathPathExpr.java:213)
at org.javarosa.xpath.XPathConditional.evalNodeset(XPathConditional.java:94)
at org.javarosa.core.model.ItemsetBinding.getChoices(ItemsetBinding.java:125)
at org.javarosa.form.api.FormEntryPrompt.getSelectChoices(FormEntryPrompt.java:222)
at org.javarosa.form.api.FormEntryPrompt.getAnswerValue(FormEntryPrompt.java:98)
at org.javarosa.form.api.FormEntryPrompt.getAnswerText(FormEntryPrompt.java:154)
at org.odk.collect.android.formhierarchy.QuestionAnswerProcessor.getQuestionAnswer(QuestionAnswerProcessor.kt:28)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.refreshView(FormHierarchyActivity.java:672)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.refreshView(FormHierarchyActivity.java:591)
at org.odk.collect.android.formhierarchy.FormHierarchyActivity.onCreate(FormHierarchyActivity.java:278)
at android.app.Activity.performCreate(Activity.java:8054)
at android.app.Activity.performCreate(Activity.java:8034)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1341)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3688)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3864)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2253)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:201)
at android.os.Looper.loop(Looper.java:288)
at android.app.ActivityThread.main(ActivityThread.java:7870)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
The text was updated successfully, but these errors were encountered:
lognaturel
changed the title
View hierarchy with filtered entity selects crashes the app
View hierarchy with filtered entity selects crashes debug builds
Sep 10, 2024
ODK Collect version
master
(365128c) when using a debug buildProblem description
There's a StrictMode violation when viewing the hierarchy if there's a filtered entity select on screen (as the hierarchy loads select choices on the UI thread).
Steps to reproduce the problem
Expected behavior
The app shouldn't crash!
We'll probably want to add specific StrictMode calls to
DatabaseEntitiesRepository
(like we do withDatabaseInstancesRepository
) to fix this as the real™️ fix of reworking the hierarchy is probably a focus for another release.Other information
Stacktrace:
The text was updated successfully, but these errors were encountered: