The naming of the classes is the issue, but those are outside of our control.  You can synchronize all of the blocks on the same object for better readability in this class, as there will only ever be one thread adding to the queue.