I just noticed that the ``this`` reference of a ``ProjectIndexJob`` instance can escape at construction because of the initialization of the ``FileChangeObserver`` listener (this is bad because you are publishing an not yet fully initialized instance). Have a look at the *Java Concurrency book* for detailed explanations about this. Let me know if you want to chat about this issue.