guava - HazelCast Upgrade Issue from 2.5 to 3.8 -
i upgrading hazelcast 2.5 3.8 , after upgrading getting below exception :
com.google.common.util.concurrent.uncheckedexecutionexception: java.lang.illegalstateexception: recursive load of: . . . @ com.google.common.cache.localcache$segment.get(localcache.java:2201) @ com.google.common.cache.localcache.get(localcache.java:3934) @ com.google.common.cache.localcache.getorload(localcache.java:3938) @ com.google.common.cache.localcache$localloadingcache.get(localcache.java:4821) @ com.google.common.cache.localcache$localloadingcache.getunchecked(localcache.java:4827) @ com.google.inject.internal.failablecache.get(failablecache.java:48) @ com.google.inject.internal.constructorinjectorstore.get(constructorinjectorstore.java:50) @ com.google.inject.internal.constructorbindingimpl.initialize(constructorbindingimpl.java:136) @ com.google.inject.internal.injectorimpl.initializejitbinding(injectorimpl.java:547) @ com.google.inject.internal.injectorimpl.createjustintimebinding(injectorimpl.java:884) @ com.google.inject.internal.injectorimpl.createjustintimebindingrecursive(injectorimpl.java:805) @ com.google.inject.internal.injectorimpl.getjustintimebinding(injectorimpl.java:282) @ com.google.inject.internal.injectorimpl.getbindingorthrow(injectorimpl.java:214) @ com.google.inject.internal.singlefieldinjector.<init>(singlefieldinjector.java:42) @ com.google.inject.internal.membersinjectorstore.getinjectors(membersinjectorstore.java:131) @ com.google.inject.internal.membersinjectorstore.createwithlisteners(membersinjectorstore.java:98)
does 1 has idea ?
this bug in guice, when guice couldn't initialize inject class due missing interface implementation binding or fails during constructor initialization, displays error instead of actual error, can check, https://github.com/google/guice/issues/785
below program fails same error
`package com.guicetest; import javax.inject.inject; import javax.inject.provider; import com.google.inject.abstractmodule; import com.google.inject.guice; import com.google.inject.provides; /* dependencies: class01 class04 class03 class02 @provides class01 class03 class01 class04 class05 class01 class05 interface01 */ public class mytest { public static void main(string[] args) { guice.createinjector(new abstractmodule() { @override protected void configure() { } @provides public class02 providesclass02(provider<class01> arg) { return null; } }); } } class class01 { @inject public class01(provider<class04> arg1, provider<class03> arg2) { } } class class02 { } class class03 { @inject public class03(provider<class01> arg) { } } class class04 { @inject public class04(provider<class05> arg1, provider<class01> arg2) { } } class class05 { @inject public class05(provider<interface01> arg) { } } interface interface01 { }`
you can find actual error putting debug point on localcache in exception cause , expand loader object, able find actual error, finding actual error in intellij ide
Comments
Post a Comment