Does the outer sync {} have any effect? But I must admit I don't understand the syncLock.notifyAll() either, what exactly does that do? At least my German concurrency test also works without it.