PandaMonkey created IGNITE-7799:
-----------------------------------
Summary: Dependency Conflict : Conlicting JARs
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
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. As the JVM only load the classes present first on the
classpath and shadow the other duplicate ones with the same names. The
dependency conflict problem brings high risks of "NoSuchMethodException" or
"NoSuchMethodError" issues at runtime. Please notice this problem.
===============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)