scala / bug

Scala 2 bug reports only. Please, no questions — proper bug reports only.
https://scala-lang.org
230 stars 21 forks source link

FutureConverters fails for MinimalStage #12918

Closed lrytz closed 6 months ago

lrytz commented 6 months ago

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 https://github.com/scala/scala/pull/10181.

See also https://github.com/Kotlin/kotlinx.coroutines/issues/2456, https://github.com/playframework/playframework/issues/11991