From 10a23a1bd0fad9d09fcd072fd89e0cd11c195e13 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 11:36:39 -0700 Subject: [PATCH 1/8] Enable tests on JDK 17 --- .../guava/NullAwayGuavaParametricNullnessTests.java | 9 --------- .../uber/nullaway/jspecify/BytecodeGenericsTests.java | 8 -------- 2 files changed, 17 deletions(-) diff --git a/guava-recent-unit-tests/src/test/java/com/uber/nullaway/guava/NullAwayGuavaParametricNullnessTests.java b/guava-recent-unit-tests/src/test/java/com/uber/nullaway/guava/NullAwayGuavaParametricNullnessTests.java index 9bb43bb93b..d4e52d3926 100644 --- a/guava-recent-unit-tests/src/test/java/com/uber/nullaway/guava/NullAwayGuavaParametricNullnessTests.java +++ b/guava-recent-unit-tests/src/test/java/com/uber/nullaway/guava/NullAwayGuavaParametricNullnessTests.java @@ -26,7 +26,6 @@ import com.uber.nullaway.generics.JSpecifyJavacConfig; import java.util.Arrays; import java.util.List; -import org.junit.Assume; import org.junit.Before; import org.junit.Rule; import org.junit.Test; @@ -86,8 +85,6 @@ public void testFutureCallbackParametricNullness() { @Test public void jspecifyFutureCallback() { - // to ensure javac reads proper generic types from the Guava jar - Assume.assumeTrue(Runtime.version().feature() >= 21); jspecifyCompilationHelper .addSourceLines( "Test.java", @@ -134,8 +131,6 @@ public void testIterableParametricNullness() { @Test public void jspecifyIterables() { - // to ensure javac reads proper generic types from the Guava jar - Assume.assumeTrue(Runtime.version().feature() >= 21); jspecifyCompilationHelper .addSourceLines( "Test.java", @@ -164,8 +159,6 @@ public void jspecifyIterables() { @Test public void jspecifyComparators() { - // to ensure javac reads proper generic types from the Guava jar - Assume.assumeTrue(Runtime.version().feature() >= 21); jspecifyCompilationHelper .addSourceLines( "Test.java", @@ -246,8 +239,6 @@ public void testFunctionMethodOverride() { @Test public void newHashSetPassingNullable() { - // to ensure javac reads proper generic types from the Guava jar - Assume.assumeTrue(Runtime.version().feature() >= 21); jspecifyCompilationHelper .addSourceLines( "Test.java", diff --git a/nullaway/src/test/java/com/uber/nullaway/jspecify/BytecodeGenericsTests.java b/nullaway/src/test/java/com/uber/nullaway/jspecify/BytecodeGenericsTests.java index 913783e7d9..62558893e5 100644 --- a/nullaway/src/test/java/com/uber/nullaway/jspecify/BytecodeGenericsTests.java +++ b/nullaway/src/test/java/com/uber/nullaway/jspecify/BytecodeGenericsTests.java @@ -4,7 +4,6 @@ import com.uber.nullaway.NullAwayTestsBase; import com.uber.nullaway.generics.JSpecifyJavacConfig; import java.util.List; -import org.junit.Assume; import org.junit.Test; public class BytecodeGenericsTests extends NullAwayTestsBase { @@ -83,8 +82,6 @@ static void testNegative(NullableTypeParam<@Nullable String> t1) { @Test public void genericsChecksForFieldAssignments() { - // to read annotations properly from bytecode - Assume.assumeTrue(Runtime.version().feature() >= 21); makeHelper() .addSourceLines( "Test.java", @@ -110,9 +107,6 @@ static void testNegative(NullableTypeParam<@Nullable String> t1) { @Test public void genericsChecksForParamPassingAndReturns() { - // to read annotations properly from bytecode - Assume.assumeTrue(Runtime.version().feature() >= 21); - makeHelper() .addSourceLines( "Test.java", @@ -245,8 +239,6 @@ static void useTestFunc(String s) { @Test public void callMethodTakingJavaUtilFunction() { - // to read annotations properly from bytecode - Assume.assumeTrue(Runtime.version().feature() >= 21); makeHelper() .addSourceLines( "Test.java", From 465e941607ef4de448afdd19339bfdfb672f2c97 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 11:41:57 -0700 Subject: [PATCH 2/8] list toolchains --- .github/workflows/continuous-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index d274c3d351..9d3fe3f586 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -34,7 +34,7 @@ jobs: - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 - name: Build and test - run: ./gradlew build + run: ./gradlew javaToolchains build - name: Run shellcheck run: ./gradlew shellcheck if: runner.os == 'Linux' From d2607aae8dcc8edf9c0396d11f48ae9b06857dd1 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 11:45:36 -0700 Subject: [PATCH 3/8] tweaks --- .github/workflows/continuous-integration.yml | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 9d3fe3f586..c8dbf70e34 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -29,12 +29,17 @@ jobs: - name: 'Set up Default JDK' uses: actions/setup-java@v5 with: - java-version: 25 + java-version: | + 17 + 21 + 25 distribution: 'temurin' - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 + - name: List toolchains + run: ./gradlew javaToolchains - name: Build and test - run: ./gradlew javaToolchains build + run: ./gradlew build - name: Run shellcheck run: ./gradlew shellcheck if: runner.os == 'Linux' From 950b2beefbe7093bb943e078b644ed36f50967cc Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 11:47:56 -0700 Subject: [PATCH 4/8] try again --- .github/workflows/continuous-integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index c8dbf70e34..d19353edce 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -34,6 +34,7 @@ jobs: 21 25 distribution: 'temurin' + check-latest: 'true' - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 - name: List toolchains From 7aca8577fd897ef4da7aa96ac1a0e92bcd0b070a Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 11:59:33 -0700 Subject: [PATCH 5/8] hopefully final tweak --- .github/workflows/continuous-integration.yml | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index d19353edce..62a3ce7ceb 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -26,11 +26,17 @@ jobs: with: website: jdk.java.net release: 27 - - name: 'Set up Default JDK' + # Use Zulu for JDK 17, as Windows Temurin build of 17.0.19 is still not released + - name: 'Set up Zulu JDK 17' + uses: actions/setup-java@v5 + with: + java-version: 17 + distribution: 'zulu' + check-latest: 'true' + - name: 'Set up JDKs' uses: actions/setup-java@v5 with: java-version: | - 17 21 25 distribution: 'temurin' From 157359d8eaaad80abd6bdeb5db02d06b9d8e8f55 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 12:35:49 -0700 Subject: [PATCH 6/8] try again --- .github/workflows/continuous-integration.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 62a3ce7ceb..6185c5c2d7 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -27,12 +27,20 @@ jobs: website: jdk.java.net release: 27 # Use Zulu for JDK 17, as Windows Temurin build of 17.0.19 is still not released - - name: 'Set up Zulu JDK 17' + - name: 'Set up Zulu JDK 17 on Windows' uses: actions/setup-java@v5 with: java-version: 17 distribution: 'zulu' check-latest: 'true' + if: runner.os == 'Windows' + - name: 'Set up Temurin JDK 17' + uses: actions/setup-java@v5 + with: + java-version: 17 + distribution: 'temurin' + check-latest: 'true' + if: runner.os != 'Windows' - name: 'Set up JDKs' uses: actions/setup-java@v5 with: From ec3126210f17683cc04f8b50479f02ef613e1854 Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 14:57:56 -0700 Subject: [PATCH 7/8] tweak comment --- .github/workflows/continuous-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 6185c5c2d7..1c6d320eb0 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -26,7 +26,7 @@ jobs: with: website: jdk.java.net release: 27 - # Use Zulu for JDK 17, as Windows Temurin build of 17.0.19 is still not released + # Use Zulu for JDK 17, as Temurin build of 17.0.19 is still not released - name: 'Set up Zulu JDK 17 on Windows' uses: actions/setup-java@v5 with: From d9a27273d756089535c45cefa851fc7c20c2f4ba Mon Sep 17 00:00:00 2001 From: Manu Sridharan Date: Sat, 2 May 2026 14:59:07 -0700 Subject: [PATCH 8/8] tweak again --- .github/workflows/continuous-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 1c6d320eb0..109d4b1071 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -26,7 +26,7 @@ jobs: with: website: jdk.java.net release: 27 - # Use Zulu for JDK 17, as Temurin build of 17.0.19 is still not released + # Use Zulu for JDK 17 on Windows, as Temurin build of 17.0.19 is still not released - name: 'Set up Zulu JDK 17 on Windows' uses: actions/setup-java@v5 with: