Fixing the Provider injection bug, wherein we were using a Provider before it had been itself injected.
The fix requires keeping track of all instances yet-to-be-injected, and making two of the InternalFactories ensure their objects are injected before use.
git-svn-id: https://google-guice.googlecode.com/svn/trunk@421 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/src/com/google/inject/InternalFactoryToProviderAdapter.java b/src/com/google/inject/InternalFactoryToProviderAdapter.java
index 8037910..59ae441 100644
--- a/src/com/google/inject/InternalFactoryToProviderAdapter.java
+++ b/src/com/google/inject/InternalFactoryToProviderAdapter.java
@@ -36,8 +36,9 @@
this.provider = Objects.nonNull(provider, "provider");
this.source = Objects.nonNull(source, "source");
}
-
+
public T get(InternalContext context, InjectionPoint<?> injectionPoint) {
+ context.ensureMemberInjected(provider);
T provided = provider.get();
return injectionPoint.checkForNull(provided, source);
}