You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@eagle.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2016/06/07 06:06:21 UTC

[jira] [Commented] (EAGLE-329) Dependency incompatibility bug among jersey, asm and extcos under JAVA 8

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

ASF GitHub Bot commented on EAGLE-329:
--------------------------------------

Github user yonzhang commented on the issue:

    https://github.com/apache/incubator-eagle/pull/226
  
    Excellent fix!!! please merge


> Dependency incompatibility bug among jersey, asm and extcos under JAVA 8
> ------------------------------------------------------------------------
>
>                 Key: EAGLE-329
>                 URL: https://issues.apache.org/jira/browse/EAGLE-329
>             Project: Eagle
>          Issue Type: Bug
>    Affects Versions: v0.5.0
>            Reporter: Hao Chen
>            Assignee: Hao Chen
>              Labels: eagle-webservice
>             Fix For: v0.5.0
>
>
> h1. Problems
> 1) Jersey conflict with Java8: https://java.net/jira/browse/JERSEY-2429
> {code}
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 52264
> 	at org.objectweb.asm.ClassReader.readClass(Unknown Source) ~[asm-3.1.jar:3.1]
> 	at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-3.1.jar:3.1]
> 	at org.objectweb.asm.ClassReader.accept(Unknown Source) ~[asm-3.1.jar:3.1]
> 	at com.sun.jersey.spi.scanning.AnnotationScannerListener.onProcess(AnnotationScannerListener.java:136) ~[jersey-server-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner$1.f(FileSchemeScanner.java:86) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.util.Closing.f(Closing.java:71) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scanDirectory(FileSchemeScanner.java:83) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.spi.scanning.uri.FileSchemeScanner.scan(FileSchemeScanner.java:71) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:225) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.core.spi.scanning.PackageNamesScanner.scan(PackageNamesScanner.java:141) ~[jersey-core-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.api.core.ScanningResourceConfig.init(ScanningResourceConfig.java:80) ~[jersey-server-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.api.core.PackagesResourceConfig.init(PackagesResourceConfig.java:104) ~[jersey-server-1.17.1.jar:1.17.1]
> 	at com.sun.jersey.api.core.PackagesResourceConfig.<init>(PackagesResourceConfig.java:78) ~[jersey-server-1.17.1.jar:1.17.1]
> {code}
> *Solution*: Upgrade to *jersey-1.19.1*
> 2) asm library conflict: Exception in thread "eXtcos managed thread 1" java.lang.ArrayIndexOutOfBoundsException: 256
> {code}
> Exception in thread "eXtcos managed thread 1" java.lang.ArrayIndexOutOfBoundsException: 256
> 	at org.objectweb.asm.ClassReader.readClass(Unknown Source)
> 	at org.objectweb.asm.ClassReader.accept(Unknown Source)
> 	at org.objectweb.asm.ClassReader.accept(Unknown Source)
> 	at net.sf.extcos.internal.JavaResourceAccessor.readClassData(JavaResourceAccessor.java:339)
> 	at net.sf.extcos.internal.JavaResourceAccessor.setResourceUrl(JavaResourceAccessor.java:309)
> 	at net.sf.extcos.internal.URLResource.getResourceAccessor(URLResource.java:98)
> 	at net.sf.extcos.internal.URLResource.isClass(URLResource.java:131)
> 	at net.sf.extcos.internal.RootFilter.filter(RootFilter.java:22)
> 	at net.sf.extcos.internal.AbstractChainedFilter.filter(AbstractChainedFilter.java:89)
> 	at net.sf.extcos.internal.ThreadingFilterInterceptor$1.run(ThreadingFilterInterceptor.java:48)
> 	at java.lang.Thread.run(Thread.java:745)
> {code}
> *Solution*: Resolve by excluding unnecessary `asm` dependencies
> 3) extcos scanner exception under java8 (asm 3/4.x support up to java 7 bytecode, while asm 5 support java8), unfortunately, seems latest version of extcos is 0.4b which support 4.0 only.
> {code}
> Exception in thread "eXtcos managed thread 1" java.lang.IllegalArgumentException
> 	at org.objectweb.asm.ClassReader.<init>(Unknown Source)
> 	at org.objectweb.asm.ClassReader.<init>(Unknown Source)
> 	at net.sf.extcos.internal.JavaResourceAccessor.readClassData(JavaResourceAccessor.java:362)
> 	at net.sf.extcos.internal.JavaResourceAccessor.setResourceUrl(JavaResourceAccessor.java:333)
> 	at net.sf.extcos.internal.URLResource.getResourceAccessor(URLResource.java:93)
> 	at net.sf.extcos.internal.URLResource.isClass(URLResource.java:126)
> 	at net.sf.extcos.internal.RootFilter.filter(RootFilter.java:22)
> 	at net.sf.extcos.internal.AbstractChainedFilter.filter(AbstractChainedFilter.java:89)
> 	at net.sf.extcos.internal.ThreadingFilterInterceptor$1.run(ThreadingFilterInterceptor.java:48)
> 	at java.lang.Thread.run(Thread.java:745)
> {code}
> *Solution*:
> {code}
> <dependency>
> 	<groupId>net.sf.extcos</groupId>
> 	<artifactId>extcos</artifactId>
> 	<exclusions>
> 		<exclusion>
> 			<groupId>org.ow2.asm</groupId>
> 			<artifactId>asm-all</artifactId>
> 		</exclusion>
> 	</exclusions>
> </dependency>
> <dependency>
> 	<groupId>org.ow2.asm</groupId>
> 	<artifactId>asm-all</artifactId> 
>     <version>5.0</version>	
> </dependency>
> {code}
> h1. Root Cause
> *  *asm is incompatible among asm-3.0,asm-4.0,asm-5.0*: the version of eagle before apache-eagle-v0.5 uses jersey v1.8 which requires asm-3.0, while eagle query engine requires *asm-4.0* but storm requires *asm-5.0*. 
> *  *asm-3.0* and *asm-4.0* is incompatible with jdk 8, but *asm-5.0* does.
> *  eagle query engine depends on *net.sf.extcos:extcos:0.4b" which support up to *asm-4.0*
> *  *jersey-1.8* is not compatible with java 8, but *jersey-1.9* is.
> h1. Final Solution to support Java 8.
> * Upgrade to jersey 1.9 
> * Exclude all asm dependencies and explicitly depend on only version "org.ow2.asm:asm-all:5.0".



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)