A fix to an unfortunate, rare concurrency problem. During injector creation, it's possbile that an @Inject method will start a thread, and attempt to access injected members while the injector is still being created. The IdentityHashSet of members to inject is currently accessed, and everything blows up. Terrible!

The fix is somewhat involved so I moved it all to a new class, CreationTimeMemberInjector. It takes care of preventing other threads from accessing injected members until all such members have been injected.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@555 d779f126-a31b-0410-b53b-1d3aecad763e
7 files changed