[ 
https://issues.apache.org/jira/browse/TOREE-355?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15966404#comment-15966404
 ] 

Josh trier commented on TOREE-355:
----------------------------------

I believe so. Not 100% what you're looking for. 

{quote}
c581f588170f6b1ce1e2ed215b70fb16  AnnotationInfoImpl.class
f7a6b0ca441fc98283dd7eaf91517c27  ASMBitmapMapper$$anonfun$mapModifiers$1.class
787998703b51276c382587c68b5892d7  ASMBitmapMapper$.class
6af683c2eadca256c7e77df395181c04  ASMBitmapMapper$class.class
8108c24c7670187491fc0ad723144876  ASMBitmapMapper.class
535440b7583cb0c4086faf0a0c9600af  ASMEmptyVisitor$$anon$1.class
84f6b9cedb733d6e2833ea256304be2f  ASMEmptyVisitor$$anon$2.class
85a0b23dd849a710be898c50795d62c7  ASMEmptyVisitor$$anon$3.class
0b7ae5e404299cfe8ba15061619bbc6e  ASMEmptyVisitor.class
e7462851115f801cf226586bc2657d81  ClassFile$.class
d643635957e3c8cba2f682d3285c1b2d  ClassFile.class
36861d8f931c0859e80318f2001ef760  ClassInfoImpl.class
1d5dfed5a543ae6c6da3b9fbec6c2fcc  ClassVisitor$$anonfun$1.class
f0c2b56e9c5155295ed0913c97ec09ea  
ClassVisitor$AnnotationArrayVisitor$$anon$2.class
c0982f35c75beb33dbed483671e759c3  ClassVisitor$AnnotationArrayVisitor.class
52ef951009c9cea8f2ff16703bbec7ab  ClassVisitor$AnnotationVisitor$$anon$1.class
488b702936ccff36cb86ed7bdc3b9bb0  ClassVisitor$AnnotationVisitor.class
fbe16ce21eeae82a9bea156c6d6cdcc7  ClassVisitor.class
17a46c2d52c244cfa70ab589e114826d  FieldInfoImpl.class
9fafd9c11524f205aa4ef7276d120bb1  InterfaceMaker$$anonfun$makeInterface$1.class
0d96bd702be6f7cc0caa62c75d1a6719  InterfaceMaker$$anonfun$makeInterface$2.class
d6073de0293c7a4ae0fde81f22d0e773  InterfaceMaker$.class
6dc9570830ea349dc4205ebb9494d991  InterfaceMaker.class
4b7806ccfe2f6b9454f18b0fe02bbbe1  MapToBeanMapperImpl$$anon$1.class
e8de55d0cb204d342e37340dba2dc91a  MapToBeanMapperImpl$$anonfun$1.class
610047d5a2a3ea4b66239ba0df151dc2  MapToBeanMapperImpl$$anonfun$2.class
a1e30fed6fad9d3b36f047ec7632bd10  MapToBeanMapperImpl$$anonfun$3.class
9df146a900a7bae8b86f4c8cf6927cb0  
MapToBeanMapperImpl$$anonfun$org$clapper$classutil$asm$MapToBeanMapperImpl$$keyToMethodName$1$1.class
d5fdc7d03f9d1712598fd97ae10a02e8  MapToBeanMapperImpl.class
749128439e8134bbcf6481edf76877b4  MethodInfoImpl.class
{quote}

> java.lang.IncompatibleClassChangeError: class 
> org.clapper.classutil.asm.ASMEmptyVisitor has interface 
> org.objectweb.asm.ClassVisitor as super class
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: TOREE-355
>                 URL: https://issues.apache.org/jira/browse/TOREE-355
>             Project: TOREE
>          Issue Type: Bug
>         Environment: Toree 0.2.0.dev1
> CDH 5.9's embedded spark-2.0.0-beta2
>            Reporter: Adrien Lavoillotte
>            Assignee: Luciano Resende
>              Labels: easyfix
>             Fix For: 0.2.0
>
>         Attachments: toree shade.png
>
>
> Using Toree 0.2.0.dev1 with CDH's embedded spark 2 did not cause TOREE-327 
> for me. Instead, I got this error:
> {code}
> Exception in thread "main" java.lang.IncompatibleClassChangeError: class 
> org.clapper.classutil.asm.ASMEmptyVisitor has interface 
> org.objectweb.asm.ClassVisitor as super class
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>         at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         at java.lang.ClassLoader.defineClass1(Native Method)
>         at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
>         at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
>         at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
>         at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
>         at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
>         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
>         at 
> org.clapper.classutil.asm.ClassFile$.load(ClassFinderImpl.scala:250)
>         at 
> org.clapper.classutil.ClassFinder.org$clapper$classutil$ClassFinder$$classData(ClassFinder.scala:427)
>         at 
> org.clapper.classutil.ClassFinder$$anonfun$2.apply(ClassFinder.scala:385)
>         at 
> org.clapper.classutil.ClassFinder$$anonfun$2.apply(ClassFinder.scala:385)
>         at scala.collection.immutable.Stream.map(Stream.scala:418)
>         at 
> org.clapper.classutil.ClassFinder.processOpenZip(ClassFinder.scala:385)
>         at org.clapper.classutil.ClassFinder.processJar(ClassFinder.scala:340)
>         at 
> org.clapper.classutil.ClassFinder.findClassesIn(ClassFinder.scala:329)
>         at org.clapper.classutil.ClassFinder.find(ClassFinder.scala:320)
>         at org.clapper.classutil.ClassFinder.getClasses(ClassFinder.scala:311)
>         at 
> org.apache.toree.plugins.PluginSearcher$$anonfun$1.apply(PluginSearcher.scala:73)
>         at 
> org.apache.toree.plugins.PluginSearcher$$anonfun$1.apply(PluginSearcher.scala:73)
>         at scala.util.Try$.apply(Try.scala:192)
>         at 
> org.apache.toree.plugins.PluginSearcher.loadClassMap(PluginSearcher.scala:73)
>         at 
> org.apache.toree.plugins.PluginSearcher.internalClassInfo$lzycompute(PluginSearcher.scala:35)
>         at 
> org.apache.toree.plugins.PluginSearcher.internalClassInfo(PluginSearcher.scala:34)
>         at 
> org.apache.toree.plugins.PluginSearcher.internal$lzycompute(PluginSearcher.scala:38)
>         at 
> org.apache.toree.plugins.PluginSearcher.internal(PluginSearcher.scala:38)
>         at 
> org.apache.toree.plugins.PluginManager.internalPlugins$lzycompute(PluginManager.scala:45)
>         at 
> org.apache.toree.plugins.PluginManager.internalPlugins(PluginManager.scala:44)
>         at 
> org.apache.toree.plugins.PluginManager.initialize(PluginManager.scala:80)
>         at 
> org.apache.toree.boot.layer.StandardComponentInitialization$class.initializePlugins(ComponentInitialization.scala:221)
>         at 
> org.apache.toree.boot.layer.StandardComponentInitialization$class.initializeComponents(ComponentInitialization.scala:86)
>         at org.apache.toree.Main$$anon$1.initializeComponents(Main.scala:35)
>         at 
> org.apache.toree.boot.KernelBootstrap.initialize(KernelBootstrap.scala:101)
>         at 
> org.apache.toree.Main$.delayedEndpoint$org$apache$toree$Main$1(Main.scala:40)
>         at org.apache.toree.Main$delayedInit$body.apply(Main.scala:24)
> {code}
> Apparently in some much older version of ASM (3), {{ClassVisitor}} was an 
> interface and not an abstract class. Said much older version can be found in 
> some Hadoop libs or older Spark libs, and ends up in the classpath with CDH's 
> spark 2.
> The simplest solution is to shadow ASM, e.g. using JarJAr Links. The 
> following produces an assembly jar that does not have this issue:
> {code}
> echo 'rule org.objectweb.asm.** org.apache.toree.shadow.@0' >relocate.rules
> java -jar jarjar-1.4.jar process relocate.rules toree.jar toree-relocated.jar
> {code}
> ASM is a dependency of ClassUtil, for which [an issue on this is currently 
> open|https://github.com/bmc/classutil/issues/19], but the author says he may 
> not want to shadow ASM, so I thought maybe you might want to.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to