FutureImpl does not cancel its attribute start, which is AsyncFutureImpl instance for identification that task is running.
methos setAsCancelled() should cancel its attribute start too.
It causes bug in method getStartCondition() in case cancellation of job in queue. Because start AssyncFuturaImpl is not set as cancelled and thread wich called getStartCondition() wait forever when job is cancelled in queue, because start is never cancelled.
It can be seen in Build flow plugin.