[
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. 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)>
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. 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)>
> 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. 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)