Uploaded image for project: 'Calcite'
  1. Calcite
  2. CALCITE-6552

Enable CheckerFramework in 'server' module

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 1.38.0
    • None

    Description

      In CALCITE-4199 we enabled CheckerFramework (via annotations and CI jobs) in the 'core' and 'linq4j' modules; this change further enables CheckerFramework in the 'server' module, and fixes all violations.

      There are also a large number of 'cosmetic' modifications to improve code quality without changing behavior, including:

      • Replace 'this.x = x; assert x != null;' by 'this.x = requireNonNull(x);' in constructors
      • Replace assert in other code locations where it implements an invariant. We don't use requireNonNull because it throws NullPointerException; we would prefer to throw AssertionError or IllegalStateException
      • Replace x.equals("") and x.size() == 0 with x.isEmpty()
      • Make fields final where possible
      • Make private methods and inner classes static where possible
      • In class Pair<K, V> make the type variables K and V no longer @Nullable by default (you can make each of them nullable if you need)

      Attachments

        Issue Links

          Activity

            People

              julianhyde Julian Hyde
              julianhyde Julian Hyde
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: