Hey all, I was testing Spring Webflux with coroutines and had the following code
@RestController
class Controller {
@GetMapping("/hello")
suspend fun delayedHelloWorld(
@RequestParam timeout: Int,
): String {
println("Delaying for $timeout")
delay(timeout.toLong())
return "Hello World!"
}
}
@SpringBootApplication
class DemoApplication
fun main(args: Array<String>) {
runApplication<DemoApplication>(*args)
}
Using only the following gradle dependencies:
org.springframework.boot:spring-boot-starter-webflux:3.3.1
org.jetbrains.kotlinx:kotlinx-coroutines-reactor:1.8.1
And when I execute
curl "<http://localhost:8080/hello?timeout=10000>"
I get the following exception
java.lang.NullPointerException: null
at kotlin.coroutines.jvm.internal.ContinuationImpl.getContext(ContinuationImpl.kt:105)
at kotlin.coroutines.jvm.internal.ContinuationImpl.intercepted(ContinuationImpl.kt:112)
at kotlin.coroutines.intrinsics.IntrinsicsKt__IntrinsicsJvmKt.intercepted(IntrinsicsJvm.kt:182)
at kotlinx.coroutines.DelayKt.delay(Delay.kt:172)
at com.demo.Controller.delayedHelloWorld$suspendImpl(Spring.kt:17)
at com.demo.Controller.delayedHelloWorld(Spring.kt)
...
Any ideias why?