From 777901e994e9761786838fd2159d471fc15b635a Mon Sep 17 00:00:00 2001 From: Doug Lea Date: Wed, 25 Nov 2015 18:18:28 -0800 Subject: [PATCH] 8143073: Improve documentation for ConcurrentHashMap serialized form Reviewed-by: martin, psandoz, chegar, shade, plevart --- .../java/util/concurrent/ConcurrentHashMap.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java b/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java index b2c2d2aa701..87f379abbc6 100644 --- a/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java +++ b/jdk/src/java.base/share/classes/java/util/concurrent/ConcurrentHashMap.java @@ -596,7 +596,16 @@ public class ConcurrentHashMap extends AbstractMap /** Number of CPUS, to place bounds on some sizings */ static final int NCPU = Runtime.getRuntime().availableProcessors(); - /** For serialization compatibility. */ + /** + * Serialized pseudo-fields, provided only for jdk7 compatibility. + * @serialField segments Segment[] + * The segments, each of which is a specialized hash table. + * @serialField segmentMask int + * Mask value for indexing into segments. The upper bits of a + * key's hash code are used to choose the segment. + * @serialField segmentShift int + * Shift value for indexing within segments. + */ private static final ObjectStreamField[] serialPersistentFields = { new ObjectStreamField("segments", Segment[].class), new ObjectStreamField("segmentMask", Integer.TYPE), @@ -1382,8 +1391,8 @@ public class ConcurrentHashMap extends AbstractMap * @param s the stream * @throws java.io.IOException if an I/O error occurs * @serialData - * the key (Object) and value (Object) - * for each key-value mapping, followed by a null pair. + * the serialized fields, followed by the key (Object) and value + * (Object) for each key-value mapping, followed by a null pair. * The key-value mappings are emitted in no particular order. */ private void writeObject(java.io.ObjectOutputStream s) @@ -1419,7 +1428,6 @@ public class ConcurrentHashMap extends AbstractMap } s.writeObject(null); s.writeObject(null); - segments = null; // throw away } /**