[ 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)