Is there no better way to do this?  Some options would be to adjust TaskRunnerWorkItem.getResult() to return the concrete class Future instead of an interface.  Or, if TaskRunnerWorkItem is an interface, the concrete class that this instance has references to can have a "getActualFuture()" method on it which returns the concrete class.

I'm scared of counting on getResult to always return a SettableFuture unless the compiler tells me it will.