Comment #5 on issue 785 by sberlin: Deadlock on "waitForValue"
http://code.google.com/p/google-guice/issues/detail?id=785

In the latest HEAD version, I get this failure:

com.google.common.util.concurrent.UncheckedExecutionException: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Recursive load
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3956)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4828) at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4834)
        at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:66) at com.google.inject.internal.Initializer$InjectableReference.validate(Initializer.java:140) at com.google.inject.internal.Initializer.validateOustandingInjections(Initializer.java:91) at com.google.inject.internal.InternalInjectorCreator.initializeStatically(InternalInjectorCreator.java:140) at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:107)
        at com.google.inject.Guice.createInjector(Guice.java:99)
        at com.google.inject.Guice.createInjector(Guice.java:73)
        at com.google.inject.Guice.createInjector(Guice.java:62)
at com.google.inject.MembersInjectorTest.testInjectIntoItself(MembersInjectorTest.java:255)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at junit.framework.TestCase.runTest(TestCase.java:168)
        at junit.framework.TestCase.runBare(TestCase.java:134)
        at junit.framework.TestResult$1.protect(TestResult.java:110)
        at junit.framework.TestResult.runProtected(TestResult.java:128)
        at junit.framework.TestResult.run(TestResult.java:113)
        at junit.framework.TestCase.run(TestCase.java:124)
        at junit.framework.TestSuite.runTest(TestSuite.java:244)
        at junit.framework.TestSuite.run(TestSuite.java:239)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Recursive load
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2203)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3956)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4828) at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4834)
        at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:66) at com.google.inject.internal.InjectorImpl.createMembersInjectorBinding(InjectorImpl.java:325) at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:835) at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:793) at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:281) at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:213) at com.google.inject.internal.SingleFieldInjector.<init>(SingleFieldInjector.java:42) at com.google.inject.internal.MembersInjectorStore.getInjectors(MembersInjectorStore.java:127) at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:96) at com.google.inject.internal.MembersInjectorStore.access$0(MembersInjectorStore.java:85) at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:43) at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:1)
        at 
com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3541) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
        ... 33 more
Caused by: java.lang.IllegalStateException: Recursive load
        at 
com.google.common.base.Preconditions.checkState(Preconditions.java:153)
at com.google.common.cache.LocalCache$Segment.waitForLoadingValue(LocalCache.java:2299) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2289)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
        at com.google.common.cache.LocalCache.get(LocalCache.java:3952)
        at com.google.common.cache.LocalCache.getOrLoad(LocalCache.java:3956)
at com.google.common.cache.LocalCache$LocalLoadingCache.get(LocalCache.java:4828) at com.google.common.cache.LocalCache$LocalLoadingCache.getUnchecked(LocalCache.java:4834)
        at com.google.inject.internal.FailableCache.get(FailableCache.java:48)
at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:66) at com.google.inject.internal.InjectorImpl.createMembersInjectorBinding(InjectorImpl.java:325) at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:835) at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:793) at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:281) at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:213) at com.google.inject.internal.SingleFieldInjector.<init>(SingleFieldInjector.java:42) at com.google.inject.internal.MembersInjectorStore.getInjectors(MembersInjectorStore.java:127) at com.google.inject.internal.MembersInjectorStore.createWithListeners(MembersInjectorStore.java:96) at com.google.inject.internal.MembersInjectorStore.access$0(MembersInjectorStore.java:85) at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:43) at com.google.inject.internal.MembersInjectorStore$1.create(MembersInjectorStore.java:1)
        at 
com.google.inject.internal.FailableCache$1.load(FailableCache.java:37)
at com.google.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3541) at com.google.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2319) at com.google.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2282)
        at com.google.common.cache.LocalCache$Segment.get(LocalCache.java:2197)
        ... 55 more


Could you try building from HEAD and see if you also get that? If you do, I'm inclined to close this as WontFix.

--
You received this message because this project is configured to send all issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings

--
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice-dev.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to