[jira] [Commented] (IGNITE-7799) Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient
[ 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
[ 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
[ 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
[ 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)