These look OK to me. We could change some declared types to ConditionObject for sake of clarifying some Condition usages, but it would not be an improvement. I did notice though that ForkJoinTask doc should include a caveat that is normally the case now, but will always hold under some upcoming changes:
* A deserialized task that completed exceptionally in any way reports * a {@code CancellationException}. I'll wait until applying those changes to include this. -Doug