Multithreading bug with accessing this.searchProviders

synchronise access to plugin instance variable searchProviders to solve a multithreading issue.

Please review and merge if ok.
Inteded to also wrap non-RuntimeExceptions (IOException) into RuntimeException?