google/guice — pull request #883 by stevenschlansker (2014-12-05 00:06:44+00:00)
Title: Avoid duplicate failures if a Singleton fails to create

Current behavior:

If a Singleton cannot be created, it will re-attempt at every injection point. In `Stage.PRODUCTION`, this is guaranteed wasted work -- the injector creates all Singletons eagerly, and any failure causes Injector creation failure. In `Stage.DEVELOPMENT`, it's a bit more confusing as we may fail later at runtime, which conceivably allows us to 'recover' from this sort of error. I would argue this is more a bug than a feature -- it allows multiple partially-created Singleton instances to leak (if you do so from the `Provider` or constructor) and is guaranteed to break later if you ever use `PRODUCTION` mode.