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)