Great, thanks for the confirmation!
 sam

On Fri, Oct 21, 2011 at 5:18 PM, Michael Burton <[email protected]> wrote:

> Snapshot fixes it, thanks Sam!
>
> --
> http://about.me/michaelburton
>
>
>
>
>
>
> On Oct 21, 2011, at 7:34 PM, Sam Berlin wrote:
>
> (But, if you still experience the bug with the latest code from Git, please
> reopen the bug or create a new one!)
>  sam
>
> On Fri, Oct 21, 2011 at 1:33 PM, Sam Berlin <[email protected]> wrote:
>
>> This looks like the bug fixed by
>> http://code.google.com/p/google-guice/source/detail?r=6b7e7187bd074d3f2df9b04e17fa01e7592f295c
>>  (issue http://code.google.com/p/google-guice/issues/detail?id=627).
>>
>> It seems to be a super old bug that's been present at least since Guice 2
>> and possibly before.  The test added in the fix should explain what causes
>> it.
>>
>> sam
>>
>>
>> On Fri, Oct 21, 2011 at 1:08 PM, Michael Burton <[email protected]> wrote:
>>
>>> A user of RoboGuice ran into the following error awhile back.  As best we
>>> can tell, it appears this might be a bug in Guice3?  Can anyone explain what
>>> might be the issue if we're doing anything wrong?
>>>
>>> Here's the code:
>>>
>>> import com.google.inject.AbstractModule;
>>> import com.google.inject.Guice;
>>> import com.google.inject.Inject;
>>> import com.google.inject.Provider;
>>> import com.google.inject.TypeLiteral;
>>> import com.google.inject.matcher.Matchers;
>>> import com.google.inject.spi.TypeEncounter;
>>> import com.google.inject.spi.TypeListener;
>>>
>>> public class GuiceTest {
>>>
>>>   public static void main(String[] args) {
>>>     TestApp testApp = new TestApp();
>>>     Guice.createInjector(new MyModule1(testApp), new MyModule2(testApp));
>>>   }
>>>
>>>   private static class BaseApp {
>>>   }
>>>
>>>
>>>   // Extends BaseApp
>>>   private static class TestApp extends BaseApp {
>>>   }
>>>
>>>
>>>
>>>   private static class MyModule1 extends AbstractModule {
>>>
>>>     private final BaseApp app;
>>>
>>>     public MyModule1(BaseApp app) {
>>>       this.app = app;
>>>     }
>>>
>>>     @Override
>>>     protected void configure() {
>>>       bind(BaseApp.class).toInstance(app);
>>>       bindListener(Matchers.any(), new MyListener());
>>>       requestStaticInjection(SomeOtherClass.class);
>>>     }
>>>   }
>>>
>>>   private static class MyModule2 extends AbstractModule {
>>>
>>>     private final TestApp app;
>>>
>>>     public MyModule2(TestApp app) {
>>>       this.app = app;
>>>     }
>>>
>>>     // Does nothing other than binding app to TestApp, which is a binding
>>> that's never used
>>>     @Override
>>>     protected void configure() {
>>>       bind(TestApp.class).toInstance(app);
>>>     }
>>>   }
>>>
>>>   // Just an empty listener
>>>   private static class MyListener implements TypeListener {
>>>     public <I> void hear(TypeLiteral<I> iTypeLiteral, TypeEncounter<I>
>>> iTypeEncounter) {
>>>     }
>>>   }
>>>
>>>   private static class SomeOtherClass {
>>>
>>>     @Inject static BaseApp app;
>>>
>>>   }
>>> }
>>>
>>>
>>>
>>>
>>> When you compile and run, you'll get the following error:
>>>
>>> $ javac -cp
>>> /Users/mike/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/mike/.m2/repository/com/google/inject/guice/3.0/guice-3.0-no_aop.jar:/Users/mike/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar
>>> GuiceTest.java
>>> $ java -cp
>>> /Users/mike/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/mike/.m2/repository/com/google/inject/guice/3.0/guice-3.0-no_aop.jar:/Users/mike/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar:.
>>> GuiceTest
>>>
>>> Exception in thread "main" com.google.inject.CreationException: Guice
>>> creation errors:
>>>
>>> 1) Error in custom provider, java.lang.NullPointerException
>>>   at GuiceTest$MyModule1.configure(GuiceTest.java:37)
>>>   while locating GuiceTest$BaseApp
>>>     for field at GuiceTest$SomeOtherClass.app(Unknown Source)
>>>
>>> 1 error
>>> at
>>> com.google.inject.internal.Errors.throwCreationExceptionIfErrorsExist(Errors.java:435)
>>>  at
>>> com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:175)
>>> at
>>> com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109)
>>>  at com.google.inject.Guice.createInjector(Guice.java:95)
>>> at com.google.inject.Guice.createInjector(Guice.java:72)
>>>  at com.google.inject.Guice.createInjector(Guice.java:62)
>>> at GuiceTest.main(GuiceTest.java:14)
>>> Caused by: java.lang.NullPointerException
>>>  at
>>> com.google.inject.internal.Initializer$InjectableReference.get(Initializer.java:147)
>>> at
>>> com.google.inject.internal.ConstantFactory.get(ConstantFactory.java:35)
>>>  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.Scopes$1$1.get(Scopes.java:65)
>>>  at
>>> com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:40)
>>> at
>>> com.google.inject.internal.SingleFieldInjector.inject(SingleFieldInjector.java:53)
>>>  at
>>> com.google.inject.internal.InjectionRequestProcessor$StaticInjection$1.call(InjectionRequestProcessor.java:116)
>>> at
>>> com.google.inject.internal.InjectionRequestProcessor$StaticInjection$1.call(InjectionRequestProcessor.java:110)
>>>  at
>>> com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1024)
>>> at
>>> com.google.inject.internal.InjectionRequestProcessor$StaticInjection.injectMembers(InjectionRequestProcessor.java:110)
>>>  at
>>> com.google.inject.internal.InjectionRequestProcessor.injectMembers(InjectionRequestProcessor.java:78)
>>> at
>>> com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:170)
>>>  ... 5 more
>>>
>>>
>>> Cheers,
>>> Mike
>>>
>>> --
>>> You received this message because you are subscribed to the Google Groups
>>> "google-guice" group.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msg/google-guice/-/CxXJN4nQwCsJ.
>>> To post to this group, send email to [email protected].
>>> To unsubscribe from this group, send email to
>>> [email protected].
>>> For more options, visit this group at
>>> http://groups.google.com/group/google-guice?hl=en.
>>>
>>
>>
>
> --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "google-guice" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/google-guice?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to