You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Andrew Gaul (Jira)" <ji...@apache.org> on 2023/03/04 13:01:00 UTC

[jira] [Commented] (JCLOUDS-1620) jclouds is not compatible with gson 2.9.0

    [ 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)