[ https://issues.apache.org/jira/browse/IGNITE-7799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16374332#comment-16374332 ]
PandaMonkey commented on IGNITE-7799: ------------------------------------- [~vkulichenko], thx for your quick reply. Of course, Maven provides the version arbitration mechanism-----"nearest wins", and then your project will explicitly use the older version: httpclient:4.5.1. The problem will arise when Ignite uses the methods defined in the transitive JAR httpclient 4.5.2, and those required methods don't exist in the loaded version httpclient:4.5.1. So it would be nice to keep the consistency of library version. That's what I want to say. Thanks again. > Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient > -------------------------------------------------------------------------- > > Key: IGNITE-7799 > URL: https://issues.apache.org/jira/browse/IGNITE-7799 > Project: Ignite > Issue Type: Bug > Components: aws > Affects Versions: 2.5 > Reporter: PandaMonkey > Priority: Minor > Fix For: 3.0 > > > Hi, by analyzing ignite-master\modules\aws\pom.xml, I found that there are > two versions of *org.apache.httpcomponents:httpclient*. Their introduced path > is: > # > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->com.amazonaws:aws-java-sdk-core:1.11.75::compile->org.apache.httpcomponents:httpclient:4.5.2::compile > # > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->org.apache.httpcomponents:httpclient:4.5.1::compile > Of them, httpclient:4.5.2 is the transitive dependency, and httpclient:4.5.1 > is the direct dependency. By further analyzing the source code, we found they > have different features. It is a minor issue, which will not lead to runtime > errors at present stage, however, it may be a potencial risk in long-term > maintainance. The dependency conflict problem brings high risks of > "*NotClassDefFoundError:*" or "*NoSuchMethodError*" issues at runtime. Please > notice this problem. *The solution is upgrading httpclient from 4.5.1 to > 4.5.2.* > > ===============projectPath->org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT@D:\ws\snapshot\ignite-master\modules\aws\pom.xml > > =======conflict:<org.apache.httpcomponents:httpclient:4.5.2::compile><org.apache.httpcomponents:httpclient:4.5.1::compile> > size:2 > > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->com.amazonaws:aws-java-sdk-core:1.11.75::compile->org.apache.httpcomponents:httpclient:4.5.2::compile > > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->org.apache.httpcomponents:httpclient:4.5.1::compile > *====Risk for ClassNotFoundException/NotClassDefFoundError:* > a) Classes that only exist in org.apache.httpcomponents:httpclient:4.5.1: > org.apache.http.client.utils.DateUtils$DateFormatHolder$1 > b) Classes that only exist in org.apache.httpcomponents:httpclient:4.5.2: > org.apache.http.conn.ssl.DefaultHostnameVerifier$TYPE > org.apache.http.impl.client.DefaultClientConnectionReuseStrategy > org.apache.http.conn.ssl.DefaultHostnameVerifier$1 > *====Risk for NoSuchMethodException/NoSuchMethodError:* > Methods that only exist in org.apache.httpcomponents:httpclient:4.5.2: > <org.apache.http.impl.cookie.PublicSuffixDomainFilter: java.util.Map > createLocalDomainMap()> > <org.apache.http.impl.cookie.IgnoreSpec: boolean > match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)> > <org.apache.http.impl.client.HttpClientBuilder: > org.apache.http.impl.client.HttpClientBuilder > setDnsResolver(org.apache.http.conn.DnsResolver)> > -- This message was sent by Atlassian JIRA (v7.6.3#76005)