FutureTaskWrapper for Java
I am very sure it is thread safe. 


Actually, it's not because the done is not in happens-before relations with the result.

But you can reach the desired behavior without extending anything: just check isDone() and call get() only if it was true.