Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java.sql.SQLException: opening db: '<>.db': Operation not permitted #5441

Open
artalejo opened this issue Sep 9, 2024 · 0 comments
Open
Labels

Comments

@artalejo
Copy link

artalejo commented Sep 9, 2024

SQLDelight Version

2.0.2

Application Operating System

JVM

Describe the Bug

I am getting the following error when starting the just installed jetpack compose application with the gradle command packageDmg. It all works fine when installing the jvm app through the IDE or via de command line: gradle bsa-desktop:run --quiet

But for some reason when packaging the project to distribute in a .dmg file it throws the following exception after the installation succeded.

So the dmg installation works but when the jvm jetpack compose app starts up it throws the following error.

The drive is as follows:

actual class TeamsDatabaseDriver {
    actual fun createDriver(): SqlDriver = JdbcSqliteDriver(
        url = "jdbc:sqlite:teams.db", schema = TeamsDatabase.Schema
    )
}

The Koin injection:

single<SqlDriver>(named(TEAMS_DB_DRIVER)) { TeamsDatabaseDriver().createDriver() }
single { TeamsLocalSource(get(named(TEAMS_DB_DRIVER))) }

Stacktrace

java.sql.SQLException: opening db: 'teams.db': Operation not permitted
    at org.sqlite.SQLiteConnection.open(SQLiteConnection.java:271)
    at org.sqlite.SQLiteConnection.<init>(SQLiteConnection.java:67)
    at org.sqlite.jdbc3.JDBC3Connection.<init>(JDBC3Connection.java:28)
    at org.sqlite.jdbc4.JDBC4Connection.<init>(JDBC4Connection.java:19)
    at org.sqlite.JDBC.createConnection(JDBC.java:106)
    at org.sqlite.JDBC.connect(JDBC.java:79)
    at java.sql.DriverManager.getConnection
    at java.sql.DriverManager.getConnection
    at app.cash.sqldelight.driver.jdbc.sqlite.ThreadedConnectionManager.getConnection(JdbcSqliteDriver.kt:122)
    at app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteDriver.getConnection(JdbcSqliteDriver.kt)
    at app.cash.sqldelight.driver.jdbc.JdbcDriver.connectionAndClose(JdbcDriver.kt:119)
    at app.cash.sqldelight.driver.jdbc.JdbcDriver.executeQuery(JdbcDriver.kt:151)
    at app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteSchemaKt.getVersion(JdbcSqliteSchema.kt:44)
    at app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteSchemaKt.JdbcSqliteDriver(JdbcSqliteSchema.kt:27)
    at app.cash.sqldelight.driver.jdbc.sqlite.JdbcSqliteSchemaKt.JdbcSqliteDriver$default(JdbcSqliteSchema.kt:19)
    at com.artalejosolutions.core.data.database.TeamsDatabaseDriver.createDriver(TeamsDatabaseDriver.kt:8)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$33.invoke(DataModule.kt:82)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$33.invoke(DataModule.kt:82)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$39.invoke(DataModule.kt:201)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$39.invoke(DataModule.kt:91)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$invoke$$inlined$singleOf$6.invoke(SingleOf.kt:227)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$invoke$$inlined$singleOf$6.invoke(SingleOf.kt:108)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.ViewModelsModuleKt$viewModelsModule$1$36.invoke(ViewModelsModule.kt:325)
    at com.artalejosolutions.core.di.ViewModelsModuleKt$viewModelsModule$1$36.invoke(ViewModelsModule.kt:203)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at screens.HomeScreen.Content(HomeScreen.kt:119)
    at cafe.adriel.voyager.navigator.NavigatorKt$CurrentScreen$1.invoke(Navigator.kt:48)
    at cafe.adriel.voyager.navigator.NavigatorKt$CurrentScreen$1.invoke(Navigator.kt:47)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:248)
    at androidx.compose.runtime.saveable.SaveableStateHolderImpl.SaveableStateProvider(SaveableStateHolder.kt:84)
    at cafe.adriel.voyager.navigator.Navigator$saveableState$2.invoke(Navigator.kt:150)
    at cafe.adriel.voyager.navigator.Navigator$saveableState$2.invoke(Navigator.kt:149)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at cafe.adriel.voyager.core.lifecycle.MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4.invoke(multipleScreenLifecycleOwnerUtil.kt:57)
    at cafe.adriel.voyager.core.lifecycle.MultipleScreenLifecycleOwnerUtilKt$RecursiveProvideBeforeScreenContent$4.invoke(multipleScreenLifecycleOwnerUtil.kt:56)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at cafe.adriel.voyager.core.lifecycle.ScreenLifecycleContentProvider$DefaultImpls.ProvideBeforeScreenContent(ScreenLifecycleOwner.kt:19)
    at cafe.adriel.voyager.core.lifecycle.ScreenLifecycleOwner$DefaultImpls.ProvideBeforeScreenContent(ScreenLifecycleOwner.kt:7)
    at cafe.adriel.voyager.core.lifecycle.DefaultScreenLifecycleOwner.ProvideBeforeScreenContent(ScreenLifecycleOwner.kt:29)
    at cafe.adriel.voyager.core.lifecycle.MultipleScreenLifecycleOwnerUtilKt.RecursiveProvideBeforeScreenContent(multipleScreenLifecycleOwnerUtil.kt:52)
    at cafe.adriel.voyager.core.lifecycle.MultipleScreenLifecycleOwnerUtilKt.MultipleProvideBeforeScreenContent(multipleScreenLifecycleOwnerUtil.kt:16)
    at cafe.adriel.voyager.navigator.Navigator.saveableState(Navigator.kt:146)
    at cafe.adriel.voyager.navigator.NavigatorKt.CurrentScreen(Navigator.kt:47)
    at cafe.adriel.voyager.navigator.ComposableSingletons$NavigatorKt$lambda-1$1.invoke(Navigator.kt:58)
    at cafe.adriel.voyager.navigator.ComposableSingletons$NavigatorKt$lambda-1$1.invoke(Navigator.kt:58)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:116)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at cafe.adriel.voyager.navigator.NavigatorKt$Navigator$6$1.invoke(Navigator.kt:98)
    at cafe.adriel.voyager.navigator.NavigatorKt$Navigator$6$1.invoke(Navigator.kt:91)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
    at cafe.adriel.voyager.navigator.NavigatorKt$Navigator$6.invoke(Navigator.kt:89)
    at cafe.adriel.voyager.navigator.NavigatorKt$Navigator$6.invoke(Navigator.kt:82)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:107)
    at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jb.kt:33)
    at androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)
org.koin.core.error.InstanceCreationException: Could not create instance for '[Singleton:'app.cash.sqldelight.db.SqlDriver',qualifier:teams-db-driver]'
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:57)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$39.invoke(DataModule.kt:201)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$39.invoke(DataModule.kt:91)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$invoke$$inlined$singleOf$6.invoke(SingleOf.kt:227)
    at com.artalejosolutions.core.di.DataModuleKt$dataModule$1$invoke$$inlined$singleOf$6.invoke(SingleOf.kt:108)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.scope.Scope.resolveValue(Scope.kt:247)
    at org.koin.core.scope.Scope.resolveInstance(Scope.kt:233)
    at org.koin.core.scope.Scope.get(Scope.kt:212)
    at com.artalejosolutions.core.di.ViewModelsModuleKt$viewModelsModule$1$36.invoke(ViewModelsModule.kt:325)
    at com.artalejosolutions.core.di.ViewModelsModuleKt$viewModelsModule$1$36.invoke(ViewModelsModule.kt:203)
    at org.koin.core.instance.InstanceFactory.create(InstanceFactory.kt:50)
    at org.koin.core.instance.SingleInstanceFactory.create(SingleInstanceFactory.kt:46)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:55)
    at org.koin.core.instance.SingleInstanceFactory$get$1.invoke(SingleInstanceFactory.kt:53)
    at org.koin.mp.KoinPlatformTools.synchronized(KoinPlatformTools.kt:36)
    at org.koin.core.instance.SingleInstanceFactory.get(SingleInstanceFactory.kt:53)
    at org.koin.core.registry.InstanceRegistry.resolveInstance$koin_core(InstanceRegistry.kt:109)
    at org.koin.core.s...
@artalejo artalejo added the bug label Sep 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant