google / google/guice

Provide a better error message when you try to inject a raw Provider.

Open
#633 1 comment 0 reactions 0 assignees View on GitHub
imported
Dominant language
Java
Stars
12.7k
Forks
1.7k
Avg merge
11m
Merged PRs (30d)
2

Description

_From [crazyboblee](https://code.google.com/u/114815478402472606661/) on May 27, 2011 13:29:37_

Current error:

Exception in thread "main" com.google.inject.internal.util.$ComputationException: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
        at com.google.inject.internal.util.$MapMaker$StrategyImpl.compute(MapMaker.java:553)
        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.getProviderOrThrow(InjectorImpl.java:967)
        at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:1000)
        at com.google.inject.internal.InjectorImpl.getProvider(InjectorImpl.java:961)
        at com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1013)
        at bake.tool.Repository$Builder.build(Repository.java:185)
        at bake.tool.Main.main(Main.java:35)
        at bake.tool.Test.main(Test.java:10)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassCastException: java.lang.Class cannot be cast to java.lang.reflect.ParameterizedType
        at com.google.inject.internal.MoreTypes.canonicalizeForKey(MoreTypes.java:82)
        at com.google.inject.Key.<init>(Key.java:126)
        at com.google.inject.Key.get(Key.java:256)
        at com.google.inject.internal.Annotations.getKey(Annotations.java:149)
        at com.google.inject.spi.InjectionPoint.forMember(InjectionPoint.java:115)
        at com.google.inject.spi.InjectionPoint.<init>(InjectionPoint.java:78)
        at com.google.inject.spi.InjectionPoint.forConstructorOf(InjectionPoint.java:272)
        at com.google.inject.internal.ConstructorBindingImpl.create(ConstructorBindingImpl.java:96)
        at com.google.inject.internal.InjectorImpl.createUninitializedBinding(InjectorImpl.java:629)
        at com.google.inject.internal.InjectorImpl.createJustInTimeBinding(InjectorImpl.java:845)
        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)
        at com.google.inject.internal.ConstructorInjectorStore.createConstructor(ConstructorInjectorStore.java:69)
        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)
        ... 23 more

Process finished with exit code 1

_Original issue: http://code.google.com/p/google-guice/issues/detail?id=633_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.