Ok, this is buggy (parallel invocations to Accumulators.nextAccumID.get() return same value).
Instead of exposing nextAccumID - make that an implementation detail of Accumulators.
Keep the code same - and rework newId in Accumators to use nextAccumID.getAndIncrement()