OpenJDK / jdk8u / jdk8u / jdk
changeset 12924:70c15f2f02c0
8189989: Improve container portability
Reviewed-by: prr, azvegint, rhalade, skoivu
author | serb |
---|---|
date | Wed, 15 Nov 2017 07:07:16 -0800 |
parents | bc20f12e1746 |
children | dcbea2002a0b |
files | src/share/classes/java/awt/Container.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/java/awt/Container.java Tue Nov 14 18:27:43 2017 -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; @@ -3717,8 +3718,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<Component>(ncomponents); for (int i = 0; i < ncomponents; ++i) { component.add(tmpComponent[i]);