Skip to content

Cached mechanism invokes cached method on incorrect type #192

@raner

Description

@raner

In a downstream project, this exception is thrown when initializing a Projo-created object that has an inherited (!) @Cached method:

[Guice/ErrorInjectingConstructor]: IncompatibleClassChangeError: Interface method reference: 'Id Something.id()', is in an indirect superinterface of Booleans$Projo
  at Booleans$Projo.<init>(Unknown Source)
  while locating Booleans$Projo
  at natives.bootstrap.Bootstrap$1.lambda$configure$2(Bootstrap.java:59)
  while locating Booleans

Learn more:
  https://github.com/google/guice/wiki/ERROR_INJECTING_CONSTRUCTOR
Caused by: IncompatibleClassChangeError: Interface method reference: 'Id Something.id()', is in an indirect superinterface of Booleans$Projo
	at Booleans$Projo.<init>(Unknown Source)
	at Booleans$Projo$$FastClassByGuice$$2016561.GUICE$TRAMPOLINE(<generated>)
	at Booleans$Projo$$FastClassByGuice$$2016561.apply(<generated>)
	at DefaultConstructionProxyFactory$FastClassProxy.newInstance(DefaultConstructionProxyFactory.java:82)
	at ConstructorInjector.provision(ConstructorInjector.java:114)
	at ConstructorInjector.construct(ConstructorInjector.java:91)
	at ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:300)
	at FactoryProxy.get(FactoryProxy.java:60)
	at ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40)
	at SingletonScope$1.get(SingletonScope.java:169)
	at InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:45)
	at InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:213)
	at InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:186)
	at InternalInjectorCreator.build(InternalInjectorCreator.java:113)
	at Guice.createInjector(Guice.java:87)
	at Guice.createInjector(Guice.java:69)
	at Guice.createInjector(Guice.java:59)
	at natives.bootstrap.Bootstrap.<init>(Bootstrap.java:74)
	at java.base/NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/Constructor.newInstanceWithCaller(Constructor.java:500)
	at java.base/Constructor.newInstance(Constructor.java:481)
	at java.base/ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:782)
	at java.base/ServiceLoader$ProviderImpl.get(ServiceLoader.java:724)
	at java.base/ServiceLoader$3.next(ServiceLoader.java:1396)
	at java.base/ServiceLoader.findFirst(ServiceLoader.java:1811)
	at bootstrap.Bootstrap.load(Bootstrap.java:34)
	at Utilities.optional(Utilities.java:92)
	at Optionals.<clinit>(Optionals.java:21)
	at java.base/NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/Constructor.newInstanceWithCaller(Constructor.java:500)
	at java.base/Constructor.newInstance(Constructor.java:481)
	at natives.bootstrap.Bootstrap$1.lambda$configure$1(Bootstrap.java:44)
	at java.base/ArrayList.forEach(ArrayList.java:1510)
	at natives.bootstrap.Bootstrap$1.configure(Bootstrap.java:53)
	at AbstractModule.configure(AbstractModule.java:66)
	at Elements$RecordingBinder.install(Elements.java:409)
	at Elements.getElements(Elements.java:108)
	at InjectorShell$Builder.build(InjectorShell.java:160)
	at InternalInjectorCreator.build(InternalInjectorCreator.java:107)
	at Guice.createInjector(Guice.java:87)
	at Guice.createInjector(Guice.java:69)
	at Guice.createInjector(Guice.java:59)
	at natives.bootstrap.Bootstrap.<init>(Bootstrap.java:74)
	at IntegerTest.installBootstrap(IntegerTest.java:19)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions