Netflix/governator — pull request #133 by stevenzwu (2014-06-10 22:02:19+00:00)
Title: change from HashSet to ConcurrentHashMap for thread safety

otherwise, we can get into potential infinite loop inside plain HashSet/HashMap

10	RUNNABLE
at java.util.HashMap.put(HashMap.java:473)
at java.util.HashSet.add(HashSet.java:217)
at com.netflix.governator.guice.InternalLifecycleModule.warmUpIsInDag(InternalLifecycleModule.java:175)
at com.netflix.governator.guice.InternalLifecycleModule.warmUpIsInDag(InternalLifecycleModule.java:149)
at com.netflix.governator.guice.InternalLifecycleModule.processInjectedObject(InternalLifecycleModule.java:110)
at com.netflix.governator.guice.InternalLifecycleModule.access$000(InternalLifecycleModule.java:45)
at com.netflix.governator.guice.InternalLifecycleModule$2$1.afterInjection(InternalLifecycleModule.java:88)
at com.google.inject.internal.MembersInjectorImpl.notifyListeners(MembersInjectorImpl.java:97)
at com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:95)
at com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:254)
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:54)
at com.google.inject.internal.ProviderToInternalFactoryAdapter$1.call(ProviderToInternalFactoryAdapter.java:46)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
at com.google.inject.servlet.ServletScopes$1$1.get(ServletScopes.java:88)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)
at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:89)
at com.google.inject.multibindings.MapBinder$RealMapBinder$2.get(MapBinder.java:387)
at com.google.inject.multibindings.MapBinder$RealMapBinder$2.get(MapBinder.java:383)
at com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
at com.google.inject.internal.InjectorImpl$4$1.call(InjectorImpl.java:978)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1031)
at com.google.inject.internal.InjectorImpl$4.get(InjectorImpl.java:974)