ranger-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Bing-ok (Jira)" <j...@apache.org>
Subject [jira] [Comment Edited] (RANGER-2984) “NoSuchMethodErrors” due to multiple versions of com.google.guava:guava:jar
Date Wed, 16 Sep 2020 12:44:00 GMT

    [ https://issues.apache.org/jira/browse/RANGER-2984?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17192670#comment-17192670

Bing-ok edited comment on RANGER-2984 at 9/16/20, 12:43 PM:

Hi [~madhan], I have submit the PR-[#75|https://github.com/apache/ranger/pull/75]

was (Author: bing-ok):
Sure, I can create a review.

> “NoSuchMethodErrors” due to multiple versions of com.google.guava:guava:jar
> ---------------------------------------------------------------------------
>                 Key: RANGER-2984
>                 URL: https://issues.apache.org/jira/browse/RANGER-2984
>             Project: Ranger
>          Issue Type: Bug
>          Components: Ranger
>    Affects Versions: 3.0.0
>            Reporter: Bing-ok
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
> h1. Issue description
> Hi, there are multiple versions of _*com.google.guava:guava*_ in _*ranger\unixauthclient*_.
As shown in the following dependency tree, according to Maven's “nearest wins” strategy,
only _*com.google.guava:guava:25.1-jre*_ can be loaded, _*com.google.guava:guava:16.0.1*_
will be shadowed.
> However, one method defined in shadowed version _*com.google.guava:guava:16.0.1*_ is
referenced by client project _*org.apache.hadoop:hadoop-auth:3.1.1*_, but missing in the actually
loaded version _*com.google.guava:guava:25.1-jre*_.
> For instance, the following missing method(defined in _*com.google.guava:guava:16.0.1*_)
is actually referenced by _*ranger\unixauthclient*_, which will introduce a runtime error(i.e.,
"NoSuchMethodError") into _*ranger\unixauthclient*_.\
> _*Missing method: com.google.common.reflect.TypeToken: java.lang.reflect.Type access$400(com.google.common.reflect.TypeToken)*_
is invoked by _*ranger\unixauthclient*_ via the following path:
> {noformat}
> paths------
> <org.apache.ranger.authentication.unix.jaas.RemoteUnixLoginModule: boolean commit()>
> <org.apache.curator.shaded.com.google.common.collect.Collections2$FilteredCollection:
boolean add(java.lang.Object)> Repositories\org\apache\curator\curator-client\2.12.0\curator-client-2.12.0.jar
> <org.apache.curator.shaded.com.google.common.reflect.TypeToken$TypeFilter$1: boolean
apply(java.lang.Object)> Repositories\org\apache\curator\curator-client\2.12.0\curator-client-2.12.0.jar
> <org.apache.curator.shaded.com.google.common.reflect.TypeToken$TypeFilter$1: boolean
apply(com.google.common.reflect.TypeToken)> Repositories\org\apache\curator\curator-client\2.12.0\curator-client-2.12.0.jar
> <com.google.common.reflect.TypeToken: java.lang.reflect.Type access$400(com.google.common.reflect.TypeToken)>{noformat}
> h1. Suggested fixing solutions
>  1. Upgrade dependency _*org.apache.hadoop:hadoop-auth*_ from _*3.1.1*_ to *_3.3.0_*.
Because the newer version _*org.apache.hadoop:hadoop-auth:3.3.0*_ does not invoke the above
missing method, such upgrading can solve the problem.
>  2. Change dependency _*com.google.guava:guava*_ from _*25.1-jre*_ to *_24.0-jre_*. Because
version *_24.0-jre_* includes the above missing method and is compatible with other versions
of _*com.google.guava:guava*_ .
> Please let me know which solution do you prefer? I can submit a PR to fix it.
> Thank you very much for your attention.
>  Best regards,
> h1. Dependency tree----
> {noformat}
> [INFO] org.apache.ranger:unixauthclient:jar:3.0.0-SNAPSHOT
> [INFO] +- *com.google.guava:guava:jar:25.1-jre:compile*
> [INFO] - org.apache.hadoop:hadoop-auth:jar:3.1.1:compile
> [INFO] +- org.apache.curator:curator-framework:jar:2.12.0:compile
> [INFO] | - org.apache.curator:curator-client:jar:2.12.0:compile
> [INFO] | - *(com.google.guava:guava:jar:16.0.1:compile - omitted for conflict with 25.1-jre)*
> [INFO] - (com.google.guava:guava:jar:11.0.2:compile - omitted for conflict with 25.1-jre){noformat}

This message was sent by Atlassian Jira

View raw message