Can't you use AtomicReferenceFieldUpdater to remove synchronized blocks... This is way faster