I'm not seeing any reason not to use an AtomicInteger instead of explicitly synchronizing on a volatile Int.