[ https://issues.apache.org/jira/browse/JCLOUDS-1550?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17164560#comment-17164560 ]
Ignasi Barrera commented on JCLOUDS-1550: ----------------------------------------- The {{jclouds/jclouds}} repo has been deprecated for a while. Please, use {{apache/jclouds}}, as it is the up to date one and the Guava versions are correct there. We had a mirror job but I see that it has been failing for a while; this is why you see a stale state in the deprecated repo. We'll look into that, but please, do update your Git remotes and point to the Apache org repos. > “NoSuchMethodErrors” due to multiple versions of com.google.guava:jar > --------------------------------------------------------------------- > > Key: JCLOUDS-1550 > URL: https://issues.apache.org/jira/browse/JCLOUDS-1550 > Project: jclouds > Issue Type: Bug > Affects Versions: 2.3.0 > Reporter: Bing-ok > Priority: Major > > Hi, there are multiple versions of _*com.google.guava:guava*_ in > _*jclouds-master\providers\skalicloud-sdg-my*_. As shown in the following > dependency tree, according to Maven's “nearest wins” strategy, only > _*com.google.guava:guava:18.0*_ can be loaded, > _*com.google.guava:guava:19.0*_ and _*com.google.guava:guava:22.0*_ will be > shadowed. > As _*com.google.guava:guava:22.0*_ has not been loaded during the building > process, several methods are missing. However, the missing methods: > 1. _*com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,java.lang.Object)*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: void > <init>()> jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > id(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > linkedService(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.collect.Collections2$FilteredCollection: boolean > add(java.lang.Object)> Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.compute.domain.internal.NullEqualToIsParentOrIsGrandparentOfCurrentLocation: > boolean apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <org.jclouds.compute.domain.internal.NullEqualToIsParentOrIsGrandparentOfCurrentLocation: > boolean apply(org.jclouds.compute.domain.ComputeMetadata)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,java.lang.Object)>{noformat} > 2. _*com.google.common.base.Preconditions: void > checkState(boolean,java.lang.String,java.lang.Object,java.lang.Object)*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: void > <init>()> jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > id(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > linkedService(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.collect.Collections2$FilteredCollection: boolean > add(java.lang.Object)> Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.compute.domain.internal.NullEqualToIsParentOrIsGrandparentOfCurrentLocation: > boolean apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <org.jclouds.compute.domain.internal.NullEqualToIsParentOrIsGrandparentOfCurrentLocation: > boolean apply(org.jclouds.compute.domain.ComputeMetadata)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <org.jclouds.location.suppliers.all.ZoneToProvider: java.lang.Object get()> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.location.suppliers.all.ZoneToProvider: java.util.Set get()> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.base.Preconditions: void > checkState(boolean,java.lang.String,java.lang.Object,java.lang.Object)> > {noformat} > 3. _*com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,int)*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: > org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > linkedServices(java.lang.Iterable)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.collect.Iterables: boolean > addAll(java.util.Collection,java.lang.Iterable)> > Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.io.internal.BasePayloadSlicer$ByteSourcePayloadIterable: > java.util.Iterator iterator()> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.io.internal.BasePayloadSlicer$ByteSourcePayloadIterator: void > <init>(com.google.common.io.ByteSource,org.jclouds.io.ContentMetadata)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.io.internal.BasePayloadSlicer$ByteSourcePayloadIterator: > org.jclouds.io.Payload getNextPayload()> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.io.ContentMetadataBuilder: org.jclouds.io.ContentMetadataBuilder > contentMD5(com.google.common.hash.HashCode)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,int)> {noformat} > 4. _*com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,java.lang.Object,java.lang.Object)*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: > org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > id(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > linkedService(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.collect.Collections2$FilteredCollection: boolean > add(java.lang.Object)> Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.compute.util.ConcurrentOpenSocketFinder$3: boolean > apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <com.google.common.base.Predicates$CompositionPredicate: boolean > apply(java.lang.Object)> > Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.location.functions.RegionToEndpoint: java.lang.Object > apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.location.functions.RegionToEndpoint: java.net.URI > apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.base.Preconditions: void > checkArgument(boolean,java.lang.String,java.lang.Object,java.lang.Object)>{noformat} > 5. _*com.google.common.base.Preconditions: void > checkState(boolean,java.lang.String,java.lang.Object)*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata: > org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder builder()> > jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: void > <init>()> jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.elasticstack.ElasticStackApiMetadata: void <init>()> > Repositories\org\apache\jclouds\api\elasticstack\2.3.0-SNAPSHOT\elasticstack-2.3.0-SNAPSHOT.jar > <org.jclouds.elasticstack.ElasticStackApiMetadata$Builder: void <init>()> > Repositories\org\apache\jclouds\api\elasticstack\2.3.0-SNAPSHOT\elasticstack-2.3.0-SNAPSHOT.jar > <org.jclouds.rest.internal.BaseHttpApiMetadata$Builder: void <init>()> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.reflect.Types2: com.google.common.reflect.TypeToken > checkBound(com.google.common.reflect.TypeToken)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.base.Preconditions: void > checkState(boolean,java.lang.String,java.lang.Object)>{noformat} > 6. _*com.google.common.net.HostAndPort: java.lang.String getHost()*_ > {noformat} > paths------ > <org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder: > org.jclouds.skalicloud.SkaliCloudMalaysiaProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > jclouds-master\providers\skalicloud-sdg-my\target\classes > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > fromProviderMetadata(org.jclouds.providers.ProviderMetadata)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > id(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <org.jclouds.providers.internal.BaseProviderMetadata$Builder: > org.jclouds.providers.internal.BaseProviderMetadata$Builder > linkedService(java.lang.String)> > Repositories\org\apache\jclouds\jclouds-core\2.3.0-SNAPSHOT\jclouds-core-2.3.0-SNAPSHOT.jar > <com.google.common.collect.Collections2$FilteredCollection: boolean > add(java.lang.Object)> Repositories\com\google\guava\guava\18.0\guava-18.0.jar > <org.jclouds.compute.stub.config.StubComputeServiceDependenciesModule$StubSocketOpen: > boolean apply(java.lang.Object)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <org.jclouds.compute.stub.config.StubComputeServiceDependenciesModule$StubSocketOpen: > boolean apply(com.google.common.net.HostAndPort)> > Repositories\org\apache\jclouds\jclouds-compute\2.3.0-SNAPSHOT\jclouds-compute-2.3.0-SNAPSHOT.jar > <com.google.common.net.HostAndPort: java.lang.String getHost()>{noformat} > The above missing methods are actually referenced by > _*com.google.guava:guava:22.0*_, which will cause “NoSuchMethodErrors” at > runtime. > Suggested fixing solutions: > 1. Upgrade dependency _*com.google.guava:guava*_ from _*18.0*_ to _*22.0*_. > 2. Use configuration attribute <dependencyManagement> to unify the version > of library _*com.google.guava:guava*_ to be _*22.0*_ in > jclouds-master\providers\skalicloud-sdg-my's pom file. > Please let me know which solution do you prefer? I can submit a PR to fix it. > Thank you very much for your attention. > Best regards, > Dependency tree---- > [INFO] org.apache.jclouds.provider:skalicloud-sdg-my:bundle:2.3.0-SNAPSHOT > [INFO] +- org.apache.jclouds.api:elasticstack:jar:2.3.0-SNAPSHOT:compile > [INFO] | - org.apache.jclouds:jclouds-compute:jar:2.3.0-SNAPSHOT:compile > [INFO] | - org.apache.jclouds:jclouds-core:jar:2.3.0-SNAPSHOT:compile > [INFO] | - *(com.google.guava:guava:jar:18.0:compile - version managed from > 22.0; omitted for duplicate)* > [INFO] +- org.apache.jclouds:jclouds-core:test-jar:tests:2.3.0-SNAPSHOT:test > [INFO] | - *(com.google.guava:guava:jar:18.0:compile - version managed from > 22.0; scope updated from test; omitted for duplicate)* > [INFO] +- com.google.auto.service:auto-service:jar:1.0-rc3:compile > [INFO] | +- com.google.auto:auto-common:jar:0.3:compile > [INFO] | | - *(com.google.guava:guava:jar:18.0:compile - version managed > from 19.0; omitted for duplicate)* > [INFO] | - *com.google.guava:guava:jar:18.0:compile* > [INFO] - org.assertj:assertj-guava:jar:1.3.0:test > [INFO] - *(com.google.guava:guava:jar:18.0:test - omitted for duplicate)* -- This message was sent by Atlassian Jira (v8.3.4#803005)