Replaced a synchronized ArrayList with a CopyOnWriteArrayList. I believe
a synchronized ArrayList would cause thread deadlock.
Made the class final.