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

PandaMonkey updated ATLAS-2437:
-------------------------------
    Description: 
When our project using org.apache.atlas:falcon-bridge:0.8.2, conflicting 
classes are introduced from two different JARs: 
<org.apache.zookeeper:zookeeper:3.4.6:><org.apache.atlas:atlas-graphdb-titan0:0.8.2:>,
 which leaded to our project throw *NoSuchMethodException.* Conflicting classes 
mean that the classes with same name but have different implementations. Then 
the JVM only load the classes present first on the classpath and shadow the 
other duplicate ones. This is the main reason why our program crashed. By 
analyzing the source code, the we found the conflicting details as follows. To 
avoid the downstream projects encounter the same problem, please notice this 
issue.

1. Risk for 
jar-pair:<*javax.xml.stream:stax-api:1.0-2*:><*stax:stax-api:1.0.1*:>
 Methods that only exist in javax.xml.stream:stax-api:1.0-2:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-mapreduce-client-core:2.7.1:->org.apache.hadoop:hadoop-yarn-common:2.7.1:->javax.xml.bind:jaxb-api:2.2.2:->javax.xml.stream:stax-api:1.0-2:]
 {color:#ff0000}<javax.xml.stream.XMLOutputFactory: 
javax.xml.stream.XMLInputFactory 
newInstance(java.lang.String,java.lang.ClassLoader)>{color}
 {color:#ff0000} methods that only exist in stax:stax-api:1.0.1:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:atlas-typesystem:0.8.2:->org.codehaus.jettison:jettison:1.3.7:->stax:stax-api:1.0.1:]{color}
 {color:#ff0000} <javax.xml.stream.FactoryFinder: java.lang.Class 
class$(java.lang.String)>{color}
 {color:#ff0000} <javax.xml.stream.XMLOutputFactory: 
javax.xml.stream.XMLOutputFactory 
newInstance(java.lang.String,java.lang.ClassLoader)>{color}

2. Risk for jar-pair:<*stax:stax-api:1.0.1*:><*xml-apis:xml-apis:1.3.04*:>
 Methods that only exist in xml-apis:xml-apis:1.3.04:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-hdfs:2.7.1:->xerces:xercesImpl:2.9.1:->xml-apis:xml-apis:1.3.04:]
 {color:#ff0000}<javax.xml.namespace.QName: void 
readObject(java.io.ObjectInputStream)>{color}
 {color:#ff0000} <javax.xml.namespace.QName: void <clinit>()>{color}

  was:
When using org.apache.atlas:falcon-bridge:0.8.2, conflicting classes are 
introduced from two different JARs: 
<org.apache.zookeeper:zookeeper:3.4.6:><org.apache.atlas:atlas-graphdb-titan0:0.8.2:>,
 which leaded to our project throw *NoSuchMethodException.* Conflicting classes 
mean that the classes with same name but have different implementations. Then 
the JVM only load the classes present first on the classpath and shadow the 
other duplicate ones. This is the main reason why our program crashed. By 
analyzing the source code, the we found the conflicting details as follows. To 
avoid the downstream projects encounter the same problem, please notice this 
issue.

1. Risk for 
jar-pair:<*javax.xml.stream:stax-api:1.0-2*:><*stax:stax-api:1.0.1*:>
 Methods that only exist in javax.xml.stream:stax-api:1.0-2:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-mapreduce-client-core:2.7.1:->org.apache.hadoop:hadoop-yarn-common:2.7.1:->javax.xml.bind:jaxb-api:2.2.2:->javax.xml.stream:stax-api:1.0-2:]
 {color:#ff0000}<javax.xml.stream.XMLOutputFactory: 
javax.xml.stream.XMLInputFactory 
newInstance(java.lang.String,java.lang.ClassLoader)>{color}
 {color:#ff0000} methods that only exist in stax:stax-api:1.0.1:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:atlas-typesystem:0.8.2:->org.codehaus.jettison:jettison:1.3.7:->stax:stax-api:1.0.1:]{color}
 {color:#ff0000} <javax.xml.stream.FactoryFinder: java.lang.Class 
class$(java.lang.String)>{color}
 {color:#ff0000} <javax.xml.stream.XMLOutputFactory: 
javax.xml.stream.XMLOutputFactory 
newInstance(java.lang.String,java.lang.ClassLoader)>{color}

2. Risk for jar-pair:<*stax:stax-api:1.0.1*:><*xml-apis:xml-apis:1.3.04*:>
 Methods that only exist in xml-apis:xml-apis:1.3.04:: 
[neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-hdfs:2.7.1:->xerces:xercesImpl:2.9.1:->xml-apis:xml-apis:1.3.04:]
 {color:#ff0000}<javax.xml.namespace.QName: void 
readObject(java.io.ObjectInputStream)>{color}
 {color:#ff0000} <javax.xml.namespace.QName: void <clinit>()>{color}


> When using org.apache.atlas:falcon-bridge:0.8.2, conflicting classes are 
> introduced from two different JARs: 
> <org.apache.zookeeper:zookeeper:3.4.6:><org.apache.atlas:atlas-graphdb-titan0:0.8.2:>,
>  which caused NoSuchMethodError
> ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ATLAS-2437
>                 URL: https://issues.apache.org/jira/browse/ATLAS-2437
>             Project: Atlas
>          Issue Type: Bug
>          Components:  atlas-core
>    Affects Versions: 0.8.2
>            Reporter: PandaMonkey
>            Priority: Major
>             Fix For: 0.8.3
>
>
> When our project using org.apache.atlas:falcon-bridge:0.8.2, conflicting 
> classes are introduced from two different JARs: 
> <org.apache.zookeeper:zookeeper:3.4.6:><org.apache.atlas:atlas-graphdb-titan0:0.8.2:>,
>  which leaded to our project throw *NoSuchMethodException.* Conflicting 
> classes mean that the classes with same name but have different 
> implementations. Then the JVM only load the classes present first on the 
> classpath and shadow the other duplicate ones. This is the main reason why 
> our program crashed. By analyzing the source code, the we found the 
> conflicting details as follows. To avoid the downstream projects encounter 
> the same problem, please notice this issue.
> 1. Risk for 
> jar-pair:<*javax.xml.stream:stax-api:1.0-2*:><*stax:stax-api:1.0.1*:>
>  Methods that only exist in javax.xml.stream:stax-api:1.0-2:: 
> [neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-mapreduce-client-core:2.7.1:->org.apache.hadoop:hadoop-yarn-common:2.7.1:->javax.xml.bind:jaxb-api:2.2.2:->javax.xml.stream:stax-api:1.0-2:]
>  {color:#ff0000}<javax.xml.stream.XMLOutputFactory: 
> javax.xml.stream.XMLInputFactory 
> newInstance(java.lang.String,java.lang.ClassLoader)>{color}
>  {color:#ff0000} methods that only exist in stax:stax-api:1.0.1:: 
> [neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:atlas-typesystem:0.8.2:->org.codehaus.jettison:jettison:1.3.7:->stax:stax-api:1.0.1:]{color}
>  {color:#ff0000} <javax.xml.stream.FactoryFinder: java.lang.Class 
> class$(java.lang.String)>{color}
>  {color:#ff0000} <javax.xml.stream.XMLOutputFactory: 
> javax.xml.stream.XMLOutputFactory 
> newInstance(java.lang.String,java.lang.ClassLoader)>{color}
> 2. Risk for jar-pair:<*stax:stax-api:1.0.1*:><*xml-apis:xml-apis:1.3.04*:>
>  Methods that only exist in xml-apis:xml-apis:1.3.04:: 
> [neu.lab:findbug:0.0.1-SNAPSHOT:->org.apache.atlas:falcon-bridge:0.8.2:->org.apache.atlas:hive-bridge:0.8.2:->org.apache.hadoop:hadoop-client:2.7.1:->org.apache.hadoop:hadoop-hdfs:2.7.1:->xerces:xercesImpl:2.9.1:->xml-apis:xml-apis:1.3.04:]
>  {color:#ff0000}<javax.xml.namespace.QName: void 
> readObject(java.io.ObjectInputStream)>{color}
>  {color:#ff0000} <javax.xml.namespace.QName: void <clinit>()>{color}



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

Reply via email to