Uploaded image for project: 'jclouds'
  1. jclouds
  2. JCLOUDS-1620

jclouds is not compatible with gson 2.9.0

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • 2.5.0
    • 2.6.0
    • jclouds-core

    Description

      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:

      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)
      

      Attachments

        Issue Links

          Activity

            People

              gaul Andrew Gaul
              jnrouvignac Jean-Noel Rouvignac
              Votes:
              1 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: