Skip to content
This repository has been archived by the owner on May 16, 2019. It is now read-only.

Issue with 0.3.0-beta / Kotlin 1.3 #32

Closed
jmarinelli opened this issue Nov 3, 2018 · 4 comments
Closed

Issue with 0.3.0-beta / Kotlin 1.3 #32

jmarinelli opened this issue Nov 3, 2018 · 4 comments

Comments

@jmarinelli
Copy link

Hi! i'm having this weird issue trying to implement KGrapQL 0.3.0-beta using Kotlin's new release 1.3

I'm defining this schema:

val schema = KGraphQL.schema {

        configure {
            useDefaultPrettyPrinter = true
        }

        query("user") {
            description = "Returns a user by its phone number"

            resolver { phoneNumber: String ->
                userService.getByPhoneNumber(phoneNumber)
            }
        }
}

And when executing the following code:
val result = schema.execute("{user(phoneNumber:\"005491140632747\"){firstName}}")

I get the following stacktrace:

java.lang.NoSuchMethodError: kotlinx.coroutines.BuildersKt.launch$default(Lkotlin/coroutines/CoroutineContext;Lkotlinx/coroutines/CoroutineStart;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;ILjava/lang/Object;)Lkotlinx/coroutines/Job;
	at com.github.pgutkowski.kgraphql.schema.execution.ParallelRequestExecutor.suspendExecute(ParallelRequestExecutor.kt:53)
	at com.github.pgutkowski.kgraphql.schema.execution.ParallelRequestExecutor$execute$1.invokeSuspend(ParallelRequestExecutor.kt:89)
	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:32)
	at kotlinx.coroutines.DispatchedTask$DefaultImpls.run(Dispatched.kt:235)
	at kotlinx.coroutines.DispatchedContinuation.run(Dispatched.kt:81)
	at kotlinx.coroutines.EventLoopBase.processNextEvent(EventLoop.kt:123)
	at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:69)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:45)
	at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source)
	at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:35)
	at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source)
	at com.github.pgutkowski.kgraphql.schema.execution.ParallelRequestExecutor.execute(ParallelRequestExecutor.kt:88)
	at com.github.pgutkowski.kgraphql.schema.DefaultSchema.execute(DefaultSchema.kt:54)
	at com.github.pgutkowski.kgraphql.schema.Schema$DefaultImpls.execute$default(Schema.kt:8)
	at com.benkopay.user.UserGraphQLRoutesKt$graphql$1.invokeSuspend(UserGraphQLRoutes.kt:34)
	at com.benkopay.user.UserGraphQLRoutesKt$graphql$1.invoke(UserGraphQLRoutes.kt)
	at io.ktor.util.pipeline.PipelineContext.proceed(PipelineContext.kt:53)
	at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:24)
	at io.ktor.routing.Routing.executeResult(Routing.kt:110)
	at io.ktor.routing.Routing.interceptor(Routing.kt:29)
	at io.ktor.routing.Routing$Feature$install$1.invokeSuspend(Routing.kt:75)
	at io.ktor.routing.Routing$Feature$install$1.invoke(Routing.kt)
	at io.ktor.util.pipeline.PipelineContext.proceed(PipelineContext.kt:53)
	at io.ktor.features.ContentNegotiation$Feature$install$1.invokeSuspend(ContentNegotiation.kt:60)
	at io.ktor.features.ContentNegotiation$Feature$install$1.invoke(ContentNegotiation.kt)
	at io.ktor.util.pipeline.PipelineContext.proceed(PipelineContext.kt:53)
	at io.ktor.features.StatusPages$intercept$3.invokeSuspend(StatusPages.kt:88)
	at io.ktor.features.StatusPages$intercept$3.invoke(StatusPages.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:82)
	at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:162)
	at io.ktor.features.StatusPages.intercept(StatusPages.kt:87)
	at io.ktor.features.StatusPages$Feature$install$1.invokeSuspend(StatusPages.kt:121)
	at io.ktor.features.StatusPages$Feature$install$1.invoke(StatusPages.kt)
	at io.ktor.util.pipeline.PipelineContext.proceed(PipelineContext.kt:53)
	at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:24)
	at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invokeSuspend(DefaultEnginePipeline.kt:80)
	at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$2.invoke(DefaultEnginePipeline.kt)
	at io.ktor.util.pipeline.PipelineContext.proceed(PipelineContext.kt:53)
	at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:24)
	at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:31)
	at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
	at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:54)
	at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:111)
	at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:160)
	at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:54)
	at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
	at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:22)
	at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:16)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:38)
	at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:353)
	at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)
	at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:404)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:463)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:884)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:748)

gradle.properties:

logback_version=1.2.1
ktor_version=1.0.0-beta-3
kotlin.code.style=official
kotlin_version=1.3.0
kgraphql_version=0.3.0-beta

build.gradle:

buildscript {
    repositories {
        jcenter()
        maven { url 'https://kotlin.bintray.com/kotlin-eap' }
    }
    
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    }
}

apply plugin: 'kotlin'
apply plugin: 'application'

group 'poc-api'
version '0.0.1-SNAPSHOT'
mainClassName = "io.ktor.server.netty.EngineMain"

sourceSets {
    main.kotlin.srcDirs = main.java.srcDirs = ['src']
    test.kotlin.srcDirs = test.java.srcDirs = ['test']
    main.resources.srcDirs = ['resources']
    test.resources.srcDirs = ['testresources']
}

repositories {
    mavenLocal()
    jcenter()
    maven { url 'https://kotlin.bintray.com/ktor' }
    maven { url 'https://kotlin.bintray.com/kotlin-eap' }
}

dependencies {
    compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    compile "io.ktor:ktor-server-netty:$ktor_version"
    compile "ch.qos.logback:logback-classic:$logback_version"
    compile "io.ktor:ktor-server-core:$ktor_version"
    compile "io.ktor:ktor-auth:$ktor_version"
    compile "io.ktor:ktor-auth-jwt:$ktor_version"
    compile "io.ktor:ktor-locations:$ktor_version"
    compile "io.ktor:ktor-server-host-common:$ktor_version"
    compile "io.ktor:ktor-gson:$ktor_version"
    compile 'org.koin:koin-ktor:1.0.1'
    compile "com.github.pgutkowski:kgraphql:$kgraphql_version"

    compile group: "org.mindrot", name: "jbcrypt", version: "0.4"

    compile 'org.jetbrains.exposed:exposed:0.11.1'
    compile "org.postgresql:postgresql:42.2.2"
    compile 'com.zaxxer:HikariCP:2.7.8'

    testCompile "io.ktor:ktor-server-tests:$ktor_version"
}

Of course I tried cleaning, re-building, with new projects, etc.

I'm kind of new with kotlin, so I do know if the coroutines API had big changes since the 1.3 release and RCs, but it feels like it might have something to do with that.

Thank you!

@vemilyus
Copy link
Contributor

vemilyus commented Nov 4, 2018

On it, expect a pull-request shortly

@vemilyus
Copy link
Contributor

vemilyus commented Nov 4, 2018

I've created a pull request #33 that takes care of those issues.

@pgutkowski
Copy link
Owner

@jmarinelli Addressed by #33 and merged, I've released new version: 0.3.0. Please upgrade.

@jmarinelli
Copy link
Author

Thanks! Great library btw!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants