Guessing at the exception that prompted you to add this synchronization, I'm not convinced it's enough. Lower down it does:
    `for (long timestamp : timestamps.subList(1, timestamps.size())) { ... }`

So that is iterating over the timestamps collection while not synchronized on the list, so can still get a ConcurrentModificationException.