[ https://issues.apache.org/jira/browse/JCLOUDS-1620?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17696439#comment-17696439 ]
Andrew Gaul commented on JCLOUDS-1620: -------------------------------------- Recent StackOverflow question: [https://stackoverflow.com/questions/75615900/guice-errorincustomprovider-nosuchmethoderror-void-constructorconstructor] Related issue about use of internal APIs: https://issues.apache.org/jira/browse/JCLOUDS-1166 I would appreciate help with this issue. > jclouds is not compatible with gson 2.9.0 > ----------------------------------------- > > Key: JCLOUDS-1620 > URL: https://issues.apache.org/jira/browse/JCLOUDS-1620 > Project: jclouds > Issue Type: Improvement > Components: jclouds-core > Affects Versions: 2.5.0 > Reporter: Jean-Noel Rouvignac > Assignee: Andrew Gaul > Priority: Major > Labels: help-wanted > > {{ConstructorConstructor}} is an internal class which changed in 2.9.0, > evolving the {{ConstructorConstructor(Map)}} constructor into > {{ConstructorConstructor(Map, boolean)}} (see > [https://github.com/google/gson/commit/615c8835d309e1be512dd98809b48332ce70250d#diff-f5e0b2c1d134138db96a9ce7fe5c670c85e512c70d12a5180cbdbcf424d3f7d7]). > Note: that it is going to break again with gson 2.9.1, evolving into > {{ConstructorConstructor(Map, boolean, List)}} (see > [https://github.com/google/gson/commit/e82637c4856b026f1ff2575c5e3d60c516391b79#diff-f5e0b2c1d134138db96a9ce7fe5c670c85e512c70d12a5180cbdbcf424d3f7d7]). > Here is the resulting stacktrace for 2.9.0: > {noformat} > java.lang.NoSuchMethodError: 'void > com.google.gson.internal.ConstructorConstructor.<init>(java.util.Map)' > at org.jclouds.json.config.GsonModule.provideGson(GsonModule.java:130) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > com.google.inject.internal.ProviderMethod$ReflectionProviderMethod.doProvision(ProviderMethod.java:286) > at > com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173) > at > com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185) > at > com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) > at > com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) > at > com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) > at > com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62) > at com.google.inject.internal.InjectorImpl$1.get(InjectorImpl.java:1050) > at > com.google.inject.internal.InjectorImpl.getInstance(InjectorImpl.java:1081) > at > org.jclouds.providers.config.BindProviderMetadataContextAndCredentials.backend(BindProviderMetadataContextAndCredentials.java:84) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base/java.lang.reflect.Method.invoke(Method.java:566) > at > com.google.inject.internal.ProviderMethod$ReflectionProviderMethod.doProvision(ProviderMethod.java:286) > at > com.google.inject.internal.ProviderMethod.doProvision(ProviderMethod.java:173) > at > com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.provision(InternalProviderInstanceBindingImpl.java:185) > at > com.google.inject.internal.InternalProviderInstanceBindingImpl$CyclicFactory.get(InternalProviderInstanceBindingImpl.java:162) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) > at > com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62) > at > com.google.inject.internal.SingleParameterInjector.inject(SingleParameterInjector.java:42) > at > com.google.inject.internal.SingleParameterInjector.getAll(SingleParameterInjector.java:65) > at > com.google.inject.internal.ConstructorInjector.provision(ConstructorInjector.java:113) > at > com.google.inject.internal.ConstructorInjector.construct(ConstructorInjector.java:91) > at > com.google.inject.internal.ConstructorBindingImpl$Factory.get(ConstructorBindingImpl.java:306) > at > com.google.inject.internal.ProviderToInternalFactoryAdapter.get(ProviderToInternalFactoryAdapter.java:40) > at > com.google.inject.internal.SingletonScope$1.get(SingletonScope.java:168) > at > com.google.inject.internal.InternalFactoryToProviderAdapter.get(InternalFactoryToProviderAdapter.java:39) > at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:62) > at > com.google.inject.internal.InternalInjectorCreator.loadEagerSingletons(InternalInjectorCreator.java:211) > at > com.google.inject.internal.InternalInjectorCreator.injectDynamically(InternalInjectorCreator.java:182) > at > com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:109) > at com.google.inject.Guice.createInjector(Guice.java:87) > at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:405) > at org.jclouds.ContextBuilder.buildInjector(ContextBuilder.java:328) > at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:615) > at org.jclouds.ContextBuilder.buildView(ContextBuilder.java:595) > {noformat} -- This message was sent by Atlassian Jira (v8.20.10#820010)