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);
   }