FutureConverters fails for MinimalStage
lrytz opened this issue · 0 comments
lrytz commented
Reported by @nmarton-da (https://github.com/scala/scala/pull/10181/files#r1385648137)
scala> import scala.jdk.FutureConverters._
import scala.jdk.FutureConverters._
scala> import java.util.concurrent.CompletableFuture
import java.util.concurrent.CompletableFuture
scala> CompletableFuture.completedStage(42).asScala
java.lang.UnsupportedOperationException
at java.base/java.util.concurrent.CompletableFuture$MinimalStage.isDone(CompletableFuture.java:2976)
at scala.jdk.javaapi.FutureConverters$.asScala(FutureConverters.scala:73)
at scala.jdk.FutureConverters$CompletionStageOps$.asScala$extension(FutureConverters.scala:41)
... 30 elided
JDK 11 has MinimalStage which is a CompletableFuture (also CompletionStage), with UnsupportedOperationException in lot of method bodies (like isDone). Regressed in scala/scala#10181.
See also Kotlin/kotlinx.coroutines#2456, playframework/playframework#11991