pombreda / google-guice

Automatically exported from code.google.com/p/google-guice
Apache License 2.0
0 stars 1 forks source link

Stack overflow and no meadningful message in incorrect configuration #691

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
===
public static class Private {
    private Private() {
    }
}

public static class A {
    private Private priv;
    private B b;
    private C c;

    @Inject
    public void setPriv(Private priv) {
        this.priv = priv;
    }

    @Inject
    public void setB(B b) {
        this.b = b;
    }

    @Inject
    public void setC(C c) {
        this.c = c;
    }
}

public static class B {
    private A a;
    private C c;

    @Inject
    public void setA(A a) {
        this.a = a;
    }

    @Inject
    public void setC(C c) {
        this.c = c;
    }
}

public static class C {
    private A a;
    private B b;

    @Inject
    public void setA(A a) {
        this.a = a;
    }

    @Inject
    public void setB(B b) {
        this.b = b;
    }
}

public static void main(String[] args) {
    Guice.createInjector(new AbstractModule() {
        protected void configure() { }
    }).getInstance(B.class);
}
===

===
l.get(CustomConcurrentHashMap.java:2041)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
    at com.google.inject.internal.MembersInjectorStore.get(MembersInjectorStore.java:65)
    at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:73)
    at com.google.inject.internal.ConstructorInjectorStore.access$000(ConstructorInjectorStore.java:28)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:36)
    at com.google.inject.internal.ConstructorInjectorStore$1.create(ConstructorInjectorStore.java:32)
    at com.google.inject.internal.FailableCache$1.apply(FailableCache.java:39)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:549)
    at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:419)
    at com.google.inject.internal.util.$CustomConcurrentHashMap$ComputingImpl.get(CustomConcurrentHashMap.java:2041)
    at com.google.inject.internal.FailableCache.get(FailableCache.java:50)
    at com.google.inject.internal.ConstructorInjectorStore.get(ConstructorInjectorStore.java:49)
    at com.google.inject.internal.ConstructorBindingImpl.initialize(ConstructorBindingImpl.java:125)
    at com.google.inject.internal.InjectorImpl.initializeJitBinding(InjectorImpl.java:521)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:847)
    at com.google.inject.internal.InjectorImpl.createJustInTimeBindingRecursive(InjectorImpl.java:772)
    at com.google.inject.internal.InjectorImpl.getJustInTimeBinding(InjectorImpl.java:256)
    at com.google.inject.internal.InjectorImpl.getBindingOrThrow(InjectorImpl.java:205)
    at com.google.inject.internal.InjectorImpl.getInternalFactory(InjectorImpl.java:853)
    at com.google.inject.internal.InjectorImpl.createParameterInjector(InjectorImpl.java:925)
    at com.google.inject.internal.InjectorImpl.getParametersInjectors(InjectorImpl.java:913)
... and millions more.
===

Original issue reported on code.google.com by stepan.k...@gmail.com on 9 Mar 2012 at 8:17