diff --git a/android/guava-tests/test/com/google/common/base/EnumsTest.java b/android/guava-tests/test/com/google/common/base/EnumsTest.java index 8560265d3418..394bbd3689b2 100644 --- a/android/guava-tests/test/com/google/common/base/EnumsTest.java +++ b/android/guava-tests/test/com/google/common/base/EnumsTest.java @@ -83,6 +83,7 @@ public void testGetIfPresent_whenNoMatchingConstant() { @J2ktIncompatible + @GwtIncompatible // weak references @AndroidIncompatible // depends on details of GC and classloading public void testGetIfPresent_doesNotPreventClassUnloading() throws Exception { WeakReference shadowLoaderReference = doTestClassUnloading(); @@ -95,6 +96,7 @@ public void testGetIfPresent_doesNotPreventClassUnloading() throws Exception { // (and therefore its ClassLoader) from being unloaded, then this WeakReference will never be // cleared. @J2ktIncompatible + @GwtIncompatible // weak references private WeakReference doTestClassUnloading() throws Exception { URLClassLoader shadowLoader = new URLClassLoader(getClassPathUrls(), null); @SuppressWarnings("unchecked") @@ -115,6 +117,7 @@ private WeakReference doTestClassUnloading() throws Exception { return new WeakReference<>(shadowLoader); } + @GwtIncompatible // stringConverter public void testStringConverter_convert() { Converter converter = Enums.stringConverter(TestEnum.class); assertEquals(TestEnum.CHEETO, converter.convert("CHEETO")); @@ -124,11 +127,13 @@ public void testStringConverter_convert() { assertNull(converter.reverse().convert(null)); } + @GwtIncompatible // stringConverter public void testStringConverter_convertError() { Converter converter = Enums.stringConverter(TestEnum.class); assertThrows(IllegalArgumentException.class, () -> converter.convert("xxx")); } + @GwtIncompatible // stringConverter public void testStringConverter_reverse() { Converter converter = Enums.stringConverter(TestEnum.class); assertEquals("CHEETO", converter.reverse().convert(TestEnum.CHEETO)); @@ -137,12 +142,14 @@ public void testStringConverter_reverse() { } @J2ktIncompatible + @GwtIncompatible // stringConverter public void testStringConverter_nullPointerTester() throws Exception { Converter converter = Enums.stringConverter(TestEnum.class); NullPointerTester tester = new NullPointerTester(); tester.testAllPublicInstanceMethods(converter); } + @GwtIncompatible // stringConverter public void testStringConverter_nullConversions() { Converter converter = Enums.stringConverter(TestEnum.class); assertNull(converter.convert(null)); @@ -150,17 +157,20 @@ public void testStringConverter_nullConversions() { } @J2ktIncompatible + @GwtIncompatible // Class.getName() public void testStringConverter_toString() { assertEquals( "Enums.stringConverter(com.google.common.base.EnumsTest$TestEnum.class)", Enums.stringConverter(TestEnum.class).toString()); } + @GwtIncompatible // stringConverter public void testStringConverter_serialization() { SerializableTester.reserializeAndAssert(Enums.stringConverter(TestEnum.class)); } @J2ktIncompatible + @GwtIncompatible // NullPointerTester public void testNullPointerExceptions() { NullPointerTester tester = new NullPointerTester(); tester.testAllPublicStaticMethods(Enums.class); @@ -176,6 +186,7 @@ private enum AnEnum { } @J2ktIncompatible + @GwtIncompatible // reflection public void testGetField() { Field foo = Enums.getField(AnEnum.FOO); assertEquals("FOO", foo.getName()); @@ -187,6 +198,7 @@ public void testGetField() { } @J2ktIncompatible + @GwtIncompatible // Class.getClassLoader() private URL[] getClassPathUrls() { ClassLoader classLoader = getClass().getClassLoader(); return classLoader instanceof URLClassLoader @@ -200,6 +212,7 @@ private URL[] getClassPathUrls() { */ // TODO(b/65488446): Make this a public API. @J2ktIncompatible + @GwtIncompatible private static ImmutableList parseJavaClassPath() { ImmutableList.Builder urls = ImmutableList.builder(); for (String entry : Splitter.on(PATH_SEPARATOR.value()).split(JAVA_CLASS_PATH.value())) { diff --git a/android/guava/src/com/google/common/base/Enums.java b/android/guava/src/com/google/common/base/Enums.java index 5587cbf9627d..d39103b0c7ed 100644 --- a/android/guava/src/com/google/common/base/Enums.java +++ b/android/guava/src/com/google/common/base/Enums.java @@ -46,6 +46,7 @@ private Enums() {} * * @since 12.0 */ + @GwtIncompatible // reflection public static Field getField(Enum enumValue) { Class clazz = enumValue.getDeclaringClass(); @@ -70,9 +71,11 @@ public static > Optional getIfPresent(Class enumClass, S return Platform.getEnumIfPresent(enumClass, value); } + @GwtIncompatible // java.lang.ref.WeakReference private static final Map>, Map>>> enumConstantCache = new WeakHashMap<>(); + @GwtIncompatible // java.lang.ref.WeakReference private static > Map>> populateCache( Class enumClass) { Map>> result = new HashMap<>(); @@ -83,6 +86,7 @@ private static > Map>> return result; } + @GwtIncompatible // java.lang.ref.WeakReference static > Map>> getEnumConstants( Class enumClass) { synchronized (enumConstantCache) { @@ -102,10 +106,12 @@ static > Map>> getEnum * * @since 16.0 */ + @GwtIncompatible public static > Converter stringConverter(Class enumClass) { return new StringConverter<>(enumClass); } + @GwtIncompatible private static final class StringConverter> extends Converter implements Serializable { @@ -144,6 +150,6 @@ public String toString() { return "Enums.stringConverter(" + enumClass.getName() + ".class)"; } - @J2ktIncompatible private static final long serialVersionUID = 0L; + @GwtIncompatible @J2ktIncompatible private static final long serialVersionUID = 0L; } } diff --git a/guava-tests/test/com/google/common/base/EnumsTest.java b/guava-tests/test/com/google/common/base/EnumsTest.java index 8560265d3418..394bbd3689b2 100644 --- a/guava-tests/test/com/google/common/base/EnumsTest.java +++ b/guava-tests/test/com/google/common/base/EnumsTest.java @@ -83,6 +83,7 @@ public void testGetIfPresent_whenNoMatchingConstant() { @J2ktIncompatible + @GwtIncompatible // weak references @AndroidIncompatible // depends on details of GC and classloading public void testGetIfPresent_doesNotPreventClassUnloading() throws Exception { WeakReference shadowLoaderReference = doTestClassUnloading(); @@ -95,6 +96,7 @@ public void testGetIfPresent_doesNotPreventClassUnloading() throws Exception { // (and therefore its ClassLoader) from being unloaded, then this WeakReference will never be // cleared. @J2ktIncompatible + @GwtIncompatible // weak references private WeakReference doTestClassUnloading() throws Exception { URLClassLoader shadowLoader = new URLClassLoader(getClassPathUrls(), null); @SuppressWarnings("unchecked") @@ -115,6 +117,7 @@ private WeakReference doTestClassUnloading() throws Exception { return new WeakReference<>(shadowLoader); } + @GwtIncompatible // stringConverter public void testStringConverter_convert() { Converter converter = Enums.stringConverter(TestEnum.class); assertEquals(TestEnum.CHEETO, converter.convert("CHEETO")); @@ -124,11 +127,13 @@ public void testStringConverter_convert() { assertNull(converter.reverse().convert(null)); } + @GwtIncompatible // stringConverter public void testStringConverter_convertError() { Converter converter = Enums.stringConverter(TestEnum.class); assertThrows(IllegalArgumentException.class, () -> converter.convert("xxx")); } + @GwtIncompatible // stringConverter public void testStringConverter_reverse() { Converter converter = Enums.stringConverter(TestEnum.class); assertEquals("CHEETO", converter.reverse().convert(TestEnum.CHEETO)); @@ -137,12 +142,14 @@ public void testStringConverter_reverse() { } @J2ktIncompatible + @GwtIncompatible // stringConverter public void testStringConverter_nullPointerTester() throws Exception { Converter converter = Enums.stringConverter(TestEnum.class); NullPointerTester tester = new NullPointerTester(); tester.testAllPublicInstanceMethods(converter); } + @GwtIncompatible // stringConverter public void testStringConverter_nullConversions() { Converter converter = Enums.stringConverter(TestEnum.class); assertNull(converter.convert(null)); @@ -150,17 +157,20 @@ public void testStringConverter_nullConversions() { } @J2ktIncompatible + @GwtIncompatible // Class.getName() public void testStringConverter_toString() { assertEquals( "Enums.stringConverter(com.google.common.base.EnumsTest$TestEnum.class)", Enums.stringConverter(TestEnum.class).toString()); } + @GwtIncompatible // stringConverter public void testStringConverter_serialization() { SerializableTester.reserializeAndAssert(Enums.stringConverter(TestEnum.class)); } @J2ktIncompatible + @GwtIncompatible // NullPointerTester public void testNullPointerExceptions() { NullPointerTester tester = new NullPointerTester(); tester.testAllPublicStaticMethods(Enums.class); @@ -176,6 +186,7 @@ private enum AnEnum { } @J2ktIncompatible + @GwtIncompatible // reflection public void testGetField() { Field foo = Enums.getField(AnEnum.FOO); assertEquals("FOO", foo.getName()); @@ -187,6 +198,7 @@ public void testGetField() { } @J2ktIncompatible + @GwtIncompatible // Class.getClassLoader() private URL[] getClassPathUrls() { ClassLoader classLoader = getClass().getClassLoader(); return classLoader instanceof URLClassLoader @@ -200,6 +212,7 @@ private URL[] getClassPathUrls() { */ // TODO(b/65488446): Make this a public API. @J2ktIncompatible + @GwtIncompatible private static ImmutableList parseJavaClassPath() { ImmutableList.Builder urls = ImmutableList.builder(); for (String entry : Splitter.on(PATH_SEPARATOR.value()).split(JAVA_CLASS_PATH.value())) { diff --git a/guava/src/com/google/common/base/Enums.java b/guava/src/com/google/common/base/Enums.java index 5587cbf9627d..d39103b0c7ed 100644 --- a/guava/src/com/google/common/base/Enums.java +++ b/guava/src/com/google/common/base/Enums.java @@ -46,6 +46,7 @@ private Enums() {} * * @since 12.0 */ + @GwtIncompatible // reflection public static Field getField(Enum enumValue) { Class clazz = enumValue.getDeclaringClass(); @@ -70,9 +71,11 @@ public static > Optional getIfPresent(Class enumClass, S return Platform.getEnumIfPresent(enumClass, value); } + @GwtIncompatible // java.lang.ref.WeakReference private static final Map>, Map>>> enumConstantCache = new WeakHashMap<>(); + @GwtIncompatible // java.lang.ref.WeakReference private static > Map>> populateCache( Class enumClass) { Map>> result = new HashMap<>(); @@ -83,6 +86,7 @@ private static > Map>> return result; } + @GwtIncompatible // java.lang.ref.WeakReference static > Map>> getEnumConstants( Class enumClass) { synchronized (enumConstantCache) { @@ -102,10 +106,12 @@ static > Map>> getEnum * * @since 16.0 */ + @GwtIncompatible public static > Converter stringConverter(Class enumClass) { return new StringConverter<>(enumClass); } + @GwtIncompatible private static final class StringConverter> extends Converter implements Serializable { @@ -144,6 +150,6 @@ public String toString() { return "Enums.stringConverter(" + enumClass.getName() + ".class)"; } - @J2ktIncompatible private static final long serialVersionUID = 0L; + @GwtIncompatible @J2ktIncompatible private static final long serialVersionUID = 0L; } }