JDK 14 RFR of JDK-8231557: Suppress warnings on non-serializable instance fields in jdk.scripting.nashorn module
Jim Laskey
james.laskey at oracle.com
Fri Sep 27 11:31:11 UTC 2019
+1
> On Sep 26, 2019, at 7:45 PM, Joe Darcy <joe.darcy at oracle.com> wrote:
>
> Hello,
>
> Another part of an on-going cleanup of library serialization usage ahead of augmented javac -Xlint warnings (JDK-8160675), the non-serializable instance fields of serializable types in the jdk.scripting.nashorn module should have their serial warnings suppressed. The analogous issue in core libs is JDK-8231202.
>
> Please review:
>
> JDK-8231557: Suppress warnings on non-serializable instance fields in jdk.scripting.nashorn module
> http://cr.openjdk.java.net/~darcy/8231557.0/
>
> Patch below. I'll update copyright years before a push.
>
> Thanks,
>
> -Joe
>
> --- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Property.java 2019-09-26 15:28:51.764610000 -0700
> +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/Property.java 2019-09-26 15:28:51.572514000 -0700
> @@ -103,6 +103,7 @@
> public static final int IS_ACCESSOR_PROPERTY = 1 << 12;
>
> /** Property key. */
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Object key;
>
> /** Property flags. */
> --- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java 2019-09-26 15:28:52.300877999 -0700
> +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/RecompilableScriptFunctionData.java 2019-09-26 15:28:52.108782000 -0700
> @@ -118,11 +118,13 @@
> * Opaque object representing parser state at the end of the function. Used when reparsing outer function
> * to help with skipping parsing inner functions.
> */
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Object endParserState;
>
> /** Code installer used for all further recompilation/specialization of this ScriptFunction */
> private transient CodeInstaller installer;
>
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Map<Integer, RecompilableScriptFunctionData> nestedFunctions;
>
> /** Id to parent function if one exists */
> @@ -135,8 +137,10 @@
>
> private transient DebugLogger log;
>
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Map<String, Integer> externalScopeDepths;
>
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Set<String> internalSymbols;
>
> private static final int GET_SET_PREFIX_LENGTH = "*et ".length();
> --- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java 2019-09-26 15:28:52.861157999 -0700
> +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/SharedPropertyMap.java 2019-09-26 15:28:52.657056000 -0700
> @@ -40,6 +40,7 @@
> */
> public final class SharedPropertyMap extends PropertyMap {
>
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private SwitchPoint switchPoint;
>
> private static final long serialVersionUID = 2166297719721778876L;
> --- old/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/StoredScript.java 2019-09-26 15:28:53.357406000 -0700
> +++ new/src/jdk.scripting.nashorn/share/classes/jdk/nashorn/internal/runtime/StoredScript.java 2019-09-26 15:28:53.157306000 -0700
> @@ -42,12 +42,15 @@
> private final String mainClassName;
>
> /** Map of class names to class bytes. */
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Map<String, byte[]> classBytes;
>
> /** Constants array. */
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Object[] constants;
>
> /** Function initializers */
> + @SuppressWarnings("serial") // Not statically typed as Serializable
> private final Map<Integer, FunctionInitializer> initializers;
>
> private static final long serialVersionUID = 2958227232195298340L;
>
More information about the nashorn-dev
mailing list