If this is called outside of the UI Thread it will fail because https://github.com/scala-ide/scala-ide/pull/309/files#L42R105 has to be initialized in the UI Thread. I tested that enabling/disabling semantic highlighting via the preference panel works as expected. However, I think it's safer to wrap the https://github.com/scala-ide/scala-ide/pull/309/files#L9R338 in an ``DisplayThread.asyncExec``. I'll do so and remove the  ``@volatile`` from https://github.com/scala-ide/scala-ide/pull/309/files#L9R79 (I'll add a comment saying that access to the member is confined to the UI Thread).