# HG changeset patch # User serb # Date 1510758436 28800 # Node ID 1ded804bbc071f0ccbd41ec4da4b21eaa2a3f88e # Parent 5bfbe17c45bc4e3f6adcc4d9e6c4c8fa69ea1336 8189989: Improve container portability Reviewed-by: prr, azvegint, rhalade, skoivu diff -r 5bfbe17c45bc -r 1ded804bbc07 src/share/classes/java/awt/Container.java --- a/src/share/classes/java/awt/Container.java Wed Jan 03 19:24:14 2018 -0800 +++ b/src/share/classes/java/awt/Container.java Wed Nov 15 07:07:16 2017 -0800 @@ -35,6 +35,7 @@ import java.beans.PropertyChangeListener; import java.io.IOException; +import java.io.InvalidObjectException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.io.ObjectStreamField; @@ -3526,8 +3527,15 @@ throws ClassNotFoundException, IOException { ObjectInputStream.GetField f = s.readFields(); - Component [] tmpComponent = (Component[])f.get("component", EMPTY_ARRAY); + // array of components may not be present in the stream or may be null + Component [] tmpComponent = (Component[])f.get("component", null); + if (tmpComponent == null) { + tmpComponent = EMPTY_ARRAY; + } int ncomponents = (Integer) f.get("ncomponents", 0); + if (ncomponents < 0 || ncomponents > tmpComponent.length) { + throw new InvalidObjectException("Incorrect number of components"); + } component = new java.util.ArrayList(ncomponents); for (int i = 0; i < ncomponents; ++i) { component.add(tmpComponent[i]);