JDK 14 RF(pre)R: add section on "conditionally serializable" collections

Joe Darcy joe.darcy at oracle.com
Thu Oct 3 15:32:47 UTC 2019


Hello,

In response to the recent and on-going review of serializable types in 
the base module and elsewhere, I thought it would be helpful if the 
collections specs discussed how collections were serialiazable. In 
particular, the proposed terminology is that a collection is 
"conditionally serializable" if the collection type implements 
java.io.Serializable and all the elements of the collections are 
serializable.

Candidate wording changes to java.util.Collection below. If this notion 
is deemed useful, I can also go through and add "This collection is 
conditionally serializable."notes to ArrayList, HashMap, and other such 
collections.

Thoughts?

Thanks,

-Joe


--- a/src/java.base/share/classes/java/util/Collection.java Tue Oct 01 
20:07:30 2019 -0700
+++ b/src/java.base/share/classes/java/util/Collection.java    Wed Oct 
02 22:58:04 2019 -0700
@@ -188,6 +188,17 @@
   * or if the only reference to the backing collection is through an
   * unmodifiable view, the view can be considered effectively immutable.
   *
+ * <h2><a id="condserial">Serializable Collections</a></h2>
+ *
+ * Many collection types implement {@link
+ * java.io.Serializable}. Typically such collections are
+ * <i>conditionally serializable</i>, if all the objects in the
+ * collection are serializable, the collection as a whole can be
+ * serialized. Otherwise, is one or more objects in a collection are
+ * <em>not<em> serializable, the collection cannot be serialized and a
+ * {@link java.io.NotSerializableException} may be thrown on attempts
+ * to serialize such a collection.
+ *
   * <p>This interface is a member of the
   * <a 
href="{@docRoot}/java.base/java/util/package-summary.html#CollectionsFramework">
   * Java Collections Framework</a>.



More information about the core-libs-dev mailing list