diff --git a/check_api/src/main/java/com/google/errorprone/util/ErrorProneScope.java b/check_api/src/main/java/com/google/errorprone/util/ErrorProneScope.java index 18b2cbdac35..025ca8a5436 100644 --- a/check_api/src/main/java/com/google/errorprone/util/ErrorProneScope.java +++ b/check_api/src/main/java/com/google/errorprone/util/ErrorProneScope.java @@ -55,10 +55,13 @@ public boolean anyMatch(Predicate predicate) { private static final Class FILTER_CLASS = getFilterClass(); private static Class getFilterClass() { + if (RuntimeVersion.isAtLeast17()) { + return null; + } try { return Class.forName("com.sun.tools.javac.util.Filter"); } catch (ClassNotFoundException e) { - return null; + throw new LinkageError(e.getMessage(), e); } } diff --git a/check_api/src/main/java/com/google/errorprone/util/RuntimeVersion.java b/check_api/src/main/java/com/google/errorprone/util/RuntimeVersion.java index e8408ee0fe7..963bcd276da 100644 --- a/check_api/src/main/java/com/google/errorprone/util/RuntimeVersion.java +++ b/check_api/src/main/java/com/google/errorprone/util/RuntimeVersion.java @@ -90,6 +90,11 @@ public static boolean isAtLeast16() { return MAJOR >= 16; } + /** Returns true if the current runtime is JDK 17 or newer. */ + public static boolean isAtLeast17() { + return MAJOR >= 17; + } + /** * Returns the latest {@code --release} version. *