diff --git a/.github/workflows/full-check.yml b/.github/workflows/full-check.yml index a20411227d4..58282a9e90e 100644 --- a/.github/workflows/full-check.yml +++ b/.github/workflows/full-check.yml @@ -24,7 +24,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java-version: [ '11', '17', '21', '22' ] + java-version: [ '17', '21', '25' ] steps: - name: Checkout GWT itself into one directory uses: actions/checkout@v6 @@ -33,7 +33,8 @@ jobs: - name: Checkout GWT tools into a sibling directory uses: actions/checkout@v6 with: - repository: 'gwtproject/tools' + repository: 'Vertispan/tools' + ref: 'errorprone-2.42' path: 'tools' - name: Set up JDK ${{ matrix.java-version }} # GWT requires Java 11+ to build diff --git a/.github/workflows/quick-check.yml b/.github/workflows/quick-check.yml index e87cc11e973..52add851053 100644 --- a/.github/workflows/quick-check.yml +++ b/.github/workflows/quick-check.yml @@ -9,7 +9,7 @@ jobs: strategy: fail-fast: false matrix: - java-version: ['11', '17', '21', '22'] + java-version: ['17', '21', '25'] steps: - name: Checkout GWT itself into one directory uses: actions/checkout@v6 @@ -20,7 +20,8 @@ jobs: - name: Checkout GWT tools into a sibling directory uses: actions/checkout@v6 with: - repository: 'gwtproject/tools' + repository: 'Vertispan/tools' + ref: 'errorprone-2.42' path: 'tools' - name: Set up JDK ${{ matrix.java-version }} # GWT presently requires Java 11+ to build diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10337.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10337.properties new file mode 100644 index 00000000000..303cec80cdd --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10337.properties @@ -0,0 +1,3 @@ +description=This is the wrong issue, but these methods are still preview, and we need an issue. +members=java.util.List#ofLazy(int, IntFunction)\ +java.util.Map#ofLazy(Set, Function) diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10338.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10338.properties new file mode 100644 index 00000000000..d2e5d4aea0c --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10338.properties @@ -0,0 +1,2 @@ +members=java.util.Comparator#min(Object, Object)\ +java.util.Comparator#max(Object, Object) diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10339.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10339.properties new file mode 100644 index 00000000000..40e1a619f0d --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10339.properties @@ -0,0 +1 @@ +members=java.lang.CharSequence#getChars(int, int, char[], int) diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10340.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10340.properties new file mode 100644 index 00000000000..3db156e1ac5 --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10340.properties @@ -0,0 +1,14 @@ +members=java.lang.Math#unsignedMultiplyExact(int, int)\ +java.lang.Math#unsignedMultiplyExact(long, long)\ +java.lang.Math#unsignedMultiplyExact(long, int)\ +java.lang.Math#powExact(int, int)\ +java.lang.Math#powExact(long, int)\ +java.lang.Math#unsignedPowExact(long, int)\ +java.lang.Math#unsignedPowExact(int, int)\ +java.lang.StrictMath#unsignedMultiplyExact(long, int)\ +java.lang.StrictMath#unsignedMultiplyExact(long, long)\ +java.lang.StrictMath#unsignedMultiplyExact(int, int)\ +java.lang.StrictMath#powExact(long, int)\ +java.lang.StrictMath#powExact(int, int)\ +java.lang.StrictMath#unsignedPowExact(long, int)\ +java.lang.StrictMath#unsignedPowExact(int, int) diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10341.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10341.properties new file mode 100644 index 00000000000..2988c0c918f --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10341.properties @@ -0,0 +1,3 @@ +members=java.io.Reader#of(CharSequence)\ +java.io.Reader#readAllLines()\ +java.io.Reader#readAllAsString() diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10342.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10342.properties new file mode 100644 index 00000000000..f644db36295 --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10342.properties @@ -0,0 +1,2 @@ +members=java.math.BigInteger#rootn(int)\ +java.math.BigInteger#rootnAndRemainder(int) diff --git a/build_tools/doctool/src/com/google/doctool/custom/missing/gh10343.properties b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10343.properties new file mode 100644 index 00000000000..106d8693e27 --- /dev/null +++ b/build_tools/doctool/src/com/google/doctool/custom/missing/gh10343.properties @@ -0,0 +1,3 @@ +members=java.lang.String#equalsFoldCase(String)\ +java.lang.String#compareToFoldCase(String)\ +java.lang.String#UNICODE_CASEFOLD_ORDER diff --git a/common.ant.xml b/common.ant.xml index d5e03123423..d2f2d06f981 100755 --- a/common.ant.xml +++ b/common.ant.xml @@ -54,13 +54,13 @@ - + - - + + @@ -187,6 +187,7 @@ + diff --git a/dev/core/test/com/google/gwt/dev/GwtVersionTest.java b/dev/core/test/com/google/gwt/dev/GwtVersionTest.java index 283cbfd27a5..e6c40eedcb9 100644 --- a/dev/core/test/com/google/gwt/dev/GwtVersionTest.java +++ b/dev/core/test/com/google/gwt/dev/GwtVersionTest.java @@ -78,6 +78,7 @@ public void testCompareTo() { /** * Test that GwtVersion.compareTo produced expected results. */ + @SuppressWarnings("SelfAssertion") public void testEquals() { GwtVersion v1 = new GwtVersion("0.0.0"); assertEquals(v1, v1); diff --git a/dev/core/test/com/google/gwt/dev/javac/CompilationStateTestBase.java b/dev/core/test/com/google/gwt/dev/javac/CompilationStateTestBase.java index 3a0834ac226..6a5cc93e840 100644 --- a/dev/core/test/com/google/gwt/dev/javac/CompilationStateTestBase.java +++ b/dev/core/test/com/google/gwt/dev/javac/CompilationStateTestBase.java @@ -170,12 +170,12 @@ protected void validateCompilationState(String... generatedTypeNames) { // Not always true due to caching! A source unit for FOO can b // identical to the generated FOO and already be cached. // assertTrue(unit.isGenerated()); - assertNotNull(generatedTypes.remove(className)); + assertTrue(generatedTypes.remove(className)); } else { String partialPath = className.replace('.', '/') + ".java"; assertTrue(resourcePathNames.contains(partialPath)); // TODO: Validate the source file matches the resource. - assertNotNull(resourcePathNames.remove(partialPath)); + assertTrue(resourcePathNames.remove(partialPath)); } } // The mutable sets should be empty now. diff --git a/dev/core/test/com/google/gwt/dev/util/StringKeyTest.java b/dev/core/test/com/google/gwt/dev/util/StringKeyTest.java index 10e4fb42361..91312064583 100644 --- a/dev/core/test/com/google/gwt/dev/util/StringKeyTest.java +++ b/dev/core/test/com/google/gwt/dev/util/StringKeyTest.java @@ -48,6 +48,7 @@ private static > void assertLT(T a, T b) { assertTrue(a.compareTo(b) < 0); } + @SuppressWarnings("SelfAssertion") public void test() { StringKey a = new KeyA("hello"); StringKey b = new KeyB("world"); @@ -64,6 +65,7 @@ public void test() { assertGT(b, a); } + @SuppressWarnings("SelfAssertion") public void testNull() { StringKey a = new KeyA(null); StringKey b = new KeyB(null); diff --git a/dev/core/test/org/apache/commons/collections/AbstractTestObject.java b/dev/core/test/org/apache/commons/collections/AbstractTestObject.java index 4bc2e948a9d..640b66b7d13 100644 --- a/dev/core/test/org/apache/commons/collections/AbstractTestObject.java +++ b/dev/core/test/org/apache/commons/collections/AbstractTestObject.java @@ -105,6 +105,7 @@ public boolean isEqualsCheckable() { } //----------------------------------------------------------------------- + @SuppressWarnings("SelfAssertion") public void testObjectEqualsSelf() { Object obj = makeObject(); assertEquals("A Object should equal itself", obj, obj); diff --git a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java index e8376f22443..4ed93e7859f 100644 --- a/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java +++ b/user/src/com/google/gwt/resources/rg/CssResourceGenerator.java @@ -90,6 +90,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; @@ -931,7 +932,7 @@ private void initReplacements(TreeLogger logger, ResourceContext context, * be be worth the effort to simplify this. */ - if (context.getCachedData(KEY_HAS_CACHED_DATA, Boolean.class) != Boolean.TRUE) { + if (!Objects.equals(context.getCachedData(KEY_HAS_CACHED_DATA, Boolean.class), Boolean.TRUE)) { ConfigurationProperty prop; TreeSet reservedPrefixes = new TreeSet(); diff --git a/user/src/com/google/gwt/resources/rg/GssResourceGenerator.java b/user/src/com/google/gwt/resources/rg/GssResourceGenerator.java index bfd787ff8d1..d5a88c43a94 100644 --- a/user/src/com/google/gwt/resources/rg/GssResourceGenerator.java +++ b/user/src/com/google/gwt/resources/rg/GssResourceGenerator.java @@ -140,6 +140,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; @@ -695,7 +696,7 @@ public void init(TreeLogger logger, ResourceContext context) throws UnableToComp @SuppressWarnings("unchecked") private void initReplacement(ResourceContext context) { - if (context.getCachedData(KEY_HAS_CACHED_DATA, Boolean.class) != Boolean.TRUE) { + if (!Objects.equals(context.getCachedData(KEY_HAS_CACHED_DATA, Boolean.class), Boolean.TRUE)) { context.putCachedData(KEY_SHARED_METHODS, new IdentityHashMap()); context.putCachedData(KEY_BY_CLASS_AND_METHOD, new IdentityHashMap 0L); diff --git a/user/test/com/google/gwt/emultest/java/lang/CompilerConstantStringTest.java b/user/test/com/google/gwt/emultest/java/lang/CompilerConstantStringTest.java index 80763a0b4f4..43fa0e9f572 100644 --- a/user/test/com/google/gwt/emultest/java/lang/CompilerConstantStringTest.java +++ b/user/test/com/google/gwt/emultest/java/lang/CompilerConstantStringTest.java @@ -38,6 +38,7 @@ public void testCharAt() { assertEquals('b', "abc".charAt(1)); } + @SuppressWarnings("SelfAssertion") public void testConcat() { assertEquals("abcdef", "abc" + "def"); assertEquals("abcdef", "abc".concat("def")); diff --git a/user/test/com/google/gwt/emultest/java/util/TestObject.java b/user/test/com/google/gwt/emultest/java/util/TestObject.java index 63ce3e42a59..60d5dfa7677 100644 --- a/user/test/com/google/gwt/emultest/java/util/TestObject.java +++ b/user/test/com/google/gwt/emultest/java/util/TestObject.java @@ -47,6 +47,7 @@ public int getCompatibilityVersion() { /** Return a new, empty {@link Object} to used for testing. */ public abstract Object makeObject(); + @SuppressWarnings("SelfAssertion") public void testObjectEqualsSelf() { Object obj = makeObject(); assertEquals("A Object should equal itself", obj, obj); diff --git a/user/test/com/google/gwt/emultest/java8/lang/StringTest.java b/user/test/com/google/gwt/emultest/java8/lang/StringTest.java index 67dace4100d..11f4fd757cb 100644 --- a/user/test/com/google/gwt/emultest/java8/lang/StringTest.java +++ b/user/test/com/google/gwt/emultest/java8/lang/StringTest.java @@ -29,6 +29,7 @@ public String getModuleName() { return "com.google.gwt.emultest.EmulSuite"; } + @SuppressWarnings("StringJoin") public void testJoin() { assertEquals("", String.join("", "")); assertEquals("", String.join(",", "")); diff --git a/user/test/com/google/gwt/junit/client/GWTTestCaseTest.java b/user/test/com/google/gwt/junit/client/GWTTestCaseTest.java index 44681379679..ec527522a4f 100644 --- a/user/test/com/google/gwt/junit/client/GWTTestCaseTest.java +++ b/user/test/com/google/gwt/junit/client/GWTTestCaseTest.java @@ -117,6 +117,7 @@ public void testThrowsNonSerializableException_hasMetaData() throws Throwable { } + @SuppressWarnings("SelfAssertion") public void testAssertEqualsDouble() { assertEquals(0.0, 0.0, 0.0); assertEquals(1.1, 1.1, 0.0); @@ -134,6 +135,7 @@ public void testAssertEqualsDouble() { assertNotEquals(-2.0, -1.0, 0.1); } + @SuppressWarnings("SelfAssertion") public void testAssertEqualsFloat() { assertEquals(0.0f, 0.0f, 0.0f); assertEquals(1.1f, 1.1f, 0.0f); @@ -151,6 +153,7 @@ public void testAssertEqualsFloat() { assertNotEquals(-2.0f, -1.0f, 0.1f); } + @SuppressWarnings("SelfAssertion") public void testAssertEqualsIntInt() { assertEquals(5, 5); assertEquals("msg", 5, 5); @@ -166,6 +169,7 @@ public void testAssertEqualsIntIntFailWithMessage() { assertEquals("msg", 5, 4); } + @SuppressWarnings("SelfAssertion") public void testAssertEqualsObjectObject() { assertEquals(obj1, obj1Equal); assertEquals("msg", obj1, obj1); diff --git a/user/test/com/google/gwt/storage/client/MapInterfaceTest.java b/user/test/com/google/gwt/storage/client/MapInterfaceTest.java index bb866bb92a0..3fdd4d1c3f5 100644 --- a/user/test/com/google/gwt/storage/client/MapInterfaceTest.java +++ b/user/test/com/google/gwt/storage/client/MapInterfaceTest.java @@ -782,6 +782,7 @@ public void testEntrySetSetValueSameValue() { assertInvariants(map); } + @SuppressWarnings("SelfAssertion") public void testEqualsForEqualMap() { final Map map; try { @@ -841,6 +842,7 @@ public void disabled_testEqualsForSmallerMap() { assertFalse(map.equals(smallerMap)); } + @SuppressWarnings("SelfAssertion") public void testEqualsForEmptyMap() { final Map map; try {