[jira] [Commented] (IGNITE-7799) Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient

2018-02-23 Thread PandaMonkey (JIRA)

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

PandaMonkey commented on IGNITE-7799:
-

[~vkulichenko] I accept that you close the issue. Maven doesn't know which 
version is actual required by your project. 

If ignite depends on the methods of com.amazonaws:aws-java-sdk-core, at the 
same time, those invoked methods need the features definded in 
httpclient:4.5.2. The problem will appear.

Btw, nearly all the dependency conflict errors can not be detected during 
compiling process.

> 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.
> 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.
> 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:
>  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:
>   createLocalDomainMap()>
>   match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)>
>   org.apache.http.impl.client.HttpClientBuilder 
> setDnsResolver(org.apache.http.conn.DnsResolver)>
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-7799) Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient

2018-02-23 Thread Valentin Kulichenko (JIRA)

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

Valentin Kulichenko commented on IGNITE-7799:
-

Ignite can't use 4.5.2, because this dependency is excluded by Maven. Such code 
will not even compile.

I don't see an issue here. Closing the ticket.

> 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.
> 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.
> 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:
>  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:
>   createLocalDomainMap()>
>   match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)>
>   org.apache.http.impl.client.HttpClientBuilder 
> setDnsResolver(org.apache.http.conn.DnsResolver)>
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-7799) Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient

2018-02-23 Thread PandaMonkey (JIRA)

[ 
https://issues.apache.org/jira/browse/IGNITE-7799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=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:
>  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:
>   createLocalDomainMap()>
>   match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)>
>   org.apache.http.impl.client.HttpClientBuilder 
> setDnsResolver(org.apache.http.conn.DnsResolver)>
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)


[jira] [Commented] (IGNITE-7799) Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient

2018-02-23 Thread Valentin Kulichenko (JIRA)

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

Valentin Kulichenko commented on IGNITE-7799:
-

I believe Maven will use the one provided explicitly in the POM in this case, 
not transitive one. Did you actually expirience one of these issues?

> 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: 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 "*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:
>  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:
>   createLocalDomainMap()>
>   match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)>
>   org.apache.http.impl.client.HttpClientBuilder 
> setDnsResolver(org.apache.http.conn.DnsResolver)>
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)