ignite-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "PandaMonkey (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (IGNITE-7799) Dependency Conflict : Conlicting JARs
Date Fri, 23 Feb 2018 10:49:00 GMT

     [ https://issues.apache.org/jira/browse/IGNITE-7799?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

PandaMonkey updated IGNITE-7799:
--------------------------------
    Description: 
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)>

 

  was:
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)>

 


> 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
>            Priority: Major
>             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)

Mime
View raw message