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

Julian Hyde commented on CALCITE-5477:
--------------------------------------

It's really frustrating. The Guava folks added those new overloads because 
calling methods with varargs and boxing have a significant runtime cost. By 
adopting this abstraction, we are requiring that all Calcite users - even those 
building and running against modern versions of Guava - not that Guava 20 is 
'modern' - pay that penalty.

I don't have any solutions. Just venting.

> Prefer Util.checkArgument over Preconditions.checkArgument
> ----------------------------------------------------------
>
>                 Key: CALCITE-5477
>                 URL: https://issues.apache.org/jira/browse/CALCITE-5477
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Gian Merlino
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Related to CALCITE-5428.
> Preconditions.checkArgument gained new overloads in Guava 20.0, which 
> prevents code built using Guava 20.0 from running properly with earlier 
> versions of Guava. (When building against a later version of Guava, as 
> Calcite does by default, the Java compiler generates calls to methods that 
> don't exist in those earlier versions.)
> Example: in Guava 20.0 there is {{checkArgument(boolean, String, int)}}; in 
> earlier versions this would be handled by {{checkArgument(boolean, String, 
> Object...)}}.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to