You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Gabor Arki (Jira)" <ji...@apache.org> on 2020/07/23 05:48:00 UTC
[jira] [Comment Edited] (KYLIN-4656) Guava classpath conflict
caused by kylin-jdbc 3.1.0 jar
[ https://issues.apache.org/jira/browse/KYLIN-4656?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17163235#comment-17163235 ]
Gabor Arki edited comment on KYLIN-4656 at 7/23/20, 5:47 AM:
-------------------------------------------------------------
Download the published 3.1.0 jar: [https://mvnrepository.com/artifact/org.apache.kylin/kylin-jdbc/3.1.0]
Then unzip the file. You will see the com.google package inside the jar containing the guava library within the kylin-jdbc jar. From my findings, this is likely version 14 of guava.
!image-2020-07-23-07-44-40-675.png!
If you also have the real guava jar on your classpath, you end up having 2 separate and highly incompatible versions of guava classes present, and the class-loader is loading one of them randomly causing numerous runtime issues.
was (Author: arkigabor):
Download the published 3.1.0 jar: [https://mvnrepository.com/artifact/org.apache.kylin/kylin-jdbc/3.1.0]
Then unzip the file. You will see the com.google package inside the jar containing the guava library within the kylin-jdbc jar.
!image-2020-07-23-07-44-40-675.png!
If you also have the real guava jar on your classpath, you end up having 2 separate and highly incompatible versions of guava classes present, and the class-loader is loading one of them randomly causing numerous runtime issues.
> Guava classpath conflict caused by kylin-jdbc 3.1.0 jar
> -------------------------------------------------------
>
> Key: KYLIN-4656
> URL: https://issues.apache.org/jira/browse/KYLIN-4656
> Project: Kylin
> Issue Type: Bug
> Components: Driver - JDBC
> Affects Versions: v3.1.0
> Reporter: Gabor Arki
> Priority: Critical
> Attachments: image-2020-07-23-07-44-40-675.png
>
>
> The newly released kylin-jdbc 3.1.0 jar contains a shaded, non-repackaged version of the Guava library. This is causing class duplication with the original guava jar if it is also on the classpath which results in non-deterministic, runtime errors depending on which version of a certain guava class has been picked up by the class-loader from the 2 versions. Based on the runtime errors of the missing classes and methods, it seems to be a very old version, probably <=14.
>
> Either implement a proper shading with package relocation or rely on transitive dependency, but do not shade non-repackaged versions of libraries.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)