generateDatabaseInterface fails with java.lang.NoSuchMethodError: kotlin.jvm.internal.FunctionReferenceImpl on older version of gradle that depend on kotlin 1.3
See original GitHub issueBuild Environment SQLDelight version: 1.5.0-SNAPSHOT OS: Ubuntu Gradle version: Build: Kotlin + Postgres Kotlin version: 1.4.32
Describe the bug
The latest snapshot has started failing when generating interfaces with no changes in application code
./gradlew generateMainProductDatabaseInterface
Execution failed for task ':catalog:generateMainProductDatabaseInterface'.
> A failure occurred while executing com.squareup.sqldelight.gradle.SqlDelightTask$GenerateInterfaces
> kotlin.jvm.internal.FunctionReferenceImpl.<init>(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
It looks like a problem with psi project
- A stacktrace
Caused by: java.lang.NoSuchMethodError: kotlin.jvm.internal.FunctionReferenceImpl.<init>(ILjava/lang/Class;Ljava/lang/String;Ljava/lang/String;I)V
at sqldelight.com.alecstrong.sql.psi.core.psi.mixins.ColumnNameMixin$parseRule$1.<init>(ColumnNameMixin.kt)
at sqldelight.com.alecstrong.sql.psi.core.psi.mixins.ColumnNameMixin$parseRule$1.<clinit>(ColumnNameMixin.kt)
at sqldelight.com.alecstrong.sql.psi.core.psi.mixins.ColumnNameMixin.<init>(ColumnNameMixin.kt:14)
at sqldelight.com.alecstrong.sql.psi.core.psi.impl.SqlColumnNameImpl.<init>(SqlColumnNameImpl.java:17)
at sqldelight.com.alecstrong.sql.psi.core.psi.SqlTypes$Factory.createElement(SqlTypes.java:396)
at sqldelight.com.alecstrong.sql.psi.core.SqlParserUtil$createElement$1.invoke(SqlParserUtil.kt:14)
at sqldelight.com.alecstrong.sql.psi.core.SqlParserUtil$createElement$1.invoke(SqlParserUtil.kt:13)
at sqldelight.com.alecstrong.sql.psi.core.postgresql.PostgreSqlParserUtil$overrideSqlParser$8.invoke(PostgreSqlParserUtil.kt:253)
at sqldelight.com.alecstrong.sql.psi.core.postgresql.PostgreSqlParserUtil$overrideSqlParser$8.invoke(PostgreSqlParserUtil.kt:15)
at com.squareup.sqldelight.core.SqldelightParserUtil$overrideSqlParser$4.invoke(SqldelightParserUtil.kt:193)
at com.squareup.sqldelight.core.SqldelightParserUtil$overrideSqlParser$4.invoke(SqldelightParserUtil.kt:15)
at sqldelight.com.alecstrong.sql.psi.core.SqlParserDefinition.createElement(SqlParserDefinition.kt:28)
at sqldelight.com.intellij.psi.impl.source.tree.CompositeElement.createPsiNoLock(CompositeElement.java:705)
at sqldelight.com.intellij.psi.impl.source.tree.CompositeElement.getPsi(CompositeElement.java:692)
at sqldelight.com.intellij.psi.impl.source.SourceTreeToPsiMap.treeElementToPsi(SourceTreeToPsiMap.java:30)
at sqldelight.com.intellij.psi.impl.source.tree.SharedImplUtil.getFirstChild(SharedImplUtil.java:51)
at sqldelight.com.intellij.extapi.psi.ASTDelegatePsiElement.getFirstChild(ASTDelegatePsiElement.java:99)
at sqldelight.com.intellij.psi.PsiWalkingState$PsiTreeGuide.getFirstChild(PsiWalkingState.java:49)
at sqldelight.com.intellij.psi.PsiWalkingState$PsiTreeGuide.getFirstChild(PsiWalkingState.java:31)
at sqldelight.com.intellij.util.WalkingState.next(WalkingState.java:73)
at sqldelight.com.intellij.util.WalkingState.walkChildren(WalkingState.java:61)
at sqldelight.com.intellij.util.WalkingState.elementStarted(WalkingState.java:52)
at sqldelight.com.intellij.psi.PsiWalkingState.elementStarted(PsiWalkingState.java:79)
at sqldelight.com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitElement(PsiRecursiveElementWalkingVisitor.java:48)
at sqldelight.com.intellij.psi.util.PsiTreeUtil$4.visitElement(PsiTreeUtil.java:886)
at sqldelight.com.intellij.psi.PsiElementVisitor.visitFile(PsiElementVisitor.java:35)
at sqldelight.com.intellij.psi.PsiRecursiveElementWalkingVisitor.visitFile(PsiRecursiveElementWalkingVisitor.java:70)
at sqldelight.com.intellij.extapi.psi.PsiFileBase.accept(PsiFileBase.java:60)
at sqldelight.com.intellij.psi.util.PsiTreeUtil.processElements(PsiTreeUtil.java:881)
at sqldelight.com.intellij.psi.util.PsiTreeUtil.findChildOfType(PsiTreeUtil.java:249)
at sqldelight.com.intellij.psi.util.PsiTreeUtil.findChildOfType(PsiTreeUtil.java:213)
at sqldelight.com.alecstrong.sql.psi.core.SqlCoreEnvironment$annotate$1.invoke(SqlCoreEnvironment.kt:137)
at sqldelight.com.alecstrong.sql.psi.core.SqlCoreEnvironment$annotate$1.invoke(SqlCoreEnvironment.kt:59)
at com.squareup.sqldelight.core.SqlDelightEnvironment$forSourceFiles$1.invoke(SqlDelightEnvironment.kt:127)
at com.squareup.sqldelight.core.SqlDelightEnvironment$forSourceFiles$1.invoke(SqlDelightEnvironment.kt:63)
at sqldelight.com.alecstrong.sql.psi.core.SqlCoreEnvironment$forSourceFiles$1.processFile(SqlCoreEnvironment.kt:150)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContentUnderDirectory(SqlCoreEnvironment.kt:197)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContentUnderDirectory(SqlCoreEnvironment.kt:194)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContentUnderDirectory(SqlCoreEnvironment.kt:194)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContentUnderDirectory(SqlCoreEnvironment.kt:194)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContentUnderDirectory(SqlCoreEnvironment.kt:194)
at sqldelight.com.alecstrong.sql.psi.core.CoreFileIndex.iterateContent(SqlCoreEnvironment.kt:188)
at sqldelight.com.alecstrong.sql.psi.core.SqlCoreEnvironment.forSourceFiles(SqlCoreEnvironment.kt:148)
at com.squareup.sqldelight.core.SqlDelightEnvironment.forSourceFiles(SqlDelightEnvironment.kt:122)
at sqldelight.com.alecstrong.sql.psi.core.SqlCoreEnvironment.annotate(SqlCoreEnvironment.kt:136)
at com.squareup.sqldelight.core.SqlDelightEnvironment.generateSqlDelightFiles(SqlDelightEnvironment.kt:137)
at com.squareup.sqldelight.gradle.SqlDelightTask$GenerateInterfaces.execute(SqlDelightTask.kt:97)
at org.gradle.workers.internal.DefaultWorkerServer.execute(DefaultWorkerServer.java:63)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:48)
at org.gradle.workers.internal.AbstractClassLoaderWorker$1.create(AbstractClassLoaderWorker.java:42)
at org.gradle.internal.classloader.ClassLoaderUtils.executeInClassloader(ClassLoaderUtils.java:98)
at org.gradle.workers.internal.AbstractClassLoaderWorker.executeInClassLoader(AbstractClassLoaderWorker.java:42)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:49)
at org.gradle.workers.internal.IsolatedClassloaderWorker.run(IsolatedClassloaderWorker.java:30)
at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.lambda$execute$0(IsolatedClassloaderWorkerFactory.java:58)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:44)
at org.gradle.workers.internal.AbstractWorker$1.call(AbstractWorker.java:41)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
at org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation(AbstractWorker.java:41)
at org.gradle.workers.internal.IsolatedClassloaderWorkerFactory$1.execute(IsolatedClassloaderWorkerFactory.java:50)
at org.gradle.workers.internal.DefaultWorkerExecutor.lambda$submitWork$2(DefaultWorkerExecutor.java:198)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runExecution(DefaultConditionalExecutionQueue.java:215)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.runBatch(DefaultConditionalExecutionQueue.java:164)
at org.gradle.internal.work.DefaultConditionalExecutionQueue$ExecutionRunner.run(DefaultConditionalExecutionQueue.java:131)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
... 6 more
- build.gradle:
sourceSets["main"].java.srcDir("build/generated/sqldelight/code/ProductDatabase")
sqldelight {
database("ProductDatabase") {
packageName = "gt.kk.catalog.schema"
dialect = "postgresql"
deriveSchemaFromMigrations = true
migrationOutputDirectory = file("$projectDir/src/main/resources/db/migration")
migrationOutputFileFormat = ".sql"
}
}
./gradlew -v
------------------------------------------------------------
Gradle 6.4
------------------------------------------------------------
Build time: 2020-05-05 19:18:55 UTC
Revision: 42f7c3d0c3066b7b38bd0726760d4881e86fd19f
Kotlin: 1.3.71
Groovy: 2.5.10
Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019
JVM: 1.8.0_252 (Oracle Corporation 25.252-b09)
OS: Linux 5.3.0-62-generic amd64
Issue Analytics
- State:
- Created 2 years ago
- Reactions:7
- Comments:6
Top Results From Across the Web
Function references give runtime NoSuchMethodError when ...
NoSuchMethodError : 'void kotlin.jvm.internal. ... Object, java.lang. ... The failure is usually caused by using an old version (<=1.3.x) of the stdlib in ......
Read more >Missing kotlin.jvm.internal.FunctionReferenceImpl raised for ...
I have found the problem. I noticed that I had updated the Gradle on the M1. So it must have been something with...
Read more >What's new in Kotlin 1.7.20
The Alpha version of the new K2 compiler only works with JVM projects. It doesn't support Kotlin/JS, Kotlin/Native, or other multiplatform ...
Read more >gradleApi() kotlin side-effects | by Martin Macura - Medium
When we run this now, we get this error. Exception in thread "main" java.lang.NoSuchMethodError: 'void kotlin.jvm.internal.FunctionReferenceImpl ...
Read more >Navigation | Android Developers
titleCase(char, java.util.Locale)'' error when using Gradle 6.7.0 due to a dependency on an older version of Kotlin.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
I think I have found a solution. The problem is with Gradle 6.4 which depends on Kotlin 1.3.71.
When I have switched to Gradle 7.0 (Kotlin 1.4.31) build has started passing.
Not sure how it is relevant but now it works. Maybe it would be good to update sqldelight 1.5.0 release notes to include a note about it.
Had the same problem, in my case I was using
kotlin("jvm") version "1.4.30"
, but after updating tokotlin("jvm") version "1.4.32"
it worked. My gradle isgradle-6.8.3-bin.zip