Should we defend against sneaky completion? #4
Description
Porting issue 37 from the enterprise repo
rkhadiwa commented on Nov 29, 2017
To what extent do we need to defend against a user who backdoors past the "read only" CompletionStage
with cs.toCompletableFuture().complete(t)
(or the more sinister cs.toCompletableFuture.obtrudeValue
) ?
For example, AsyncFunnel
gives out the same CompletableFuture
to many distinct users. Not sure if there are any other APIs where this matters.
In JDK9 they added CompletableFuture.copy()
/CompletableFuture.minimalStage
presumably because they realized this is a problem. Should we defensively copy any CompletableFuture
we hand out that could be reused? Seems pretty costly to defend against something that no sane user would actually do.
See http://cs.oswego.edu/pipermail/concurrency-interest/2016-July/015299.html