Not sure... though it appears that you wrote this comment a while back. You could imagine a case in which the user refreshes the browser, which reads from these data structures, while the SparkListenerBus thread is updating them through an event, leading to inconsistent state reported on the UI.

However, other UI listeners do not synchronize on their data structures, and I haven't observed a concurrency issue.