提交 f3ef2e4b 编写于 作者: S serb

8189989: Improve container portability

Reviewed-by: prr, azvegint, rhalade, skoivu
上级 2758475f
...@@ -35,6 +35,7 @@ import java.awt.peer.LightweightPeer; ...@@ -35,6 +35,7 @@ import java.awt.peer.LightweightPeer;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.io.IOException; import java.io.IOException;
import java.io.InvalidObjectException;
import java.io.ObjectInputStream; import java.io.ObjectInputStream;
import java.io.ObjectOutputStream; import java.io.ObjectOutputStream;
import java.io.ObjectStreamField; import java.io.ObjectStreamField;
...@@ -3717,8 +3718,15 @@ public class Container extends Component { ...@@ -3717,8 +3718,15 @@ public class Container extends Component {
throws ClassNotFoundException, IOException throws ClassNotFoundException, IOException
{ {
ObjectInputStream.GetField f = s.readFields(); 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); 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); component = new java.util.ArrayList<Component>(ncomponents);
for (int i = 0; i < ncomponents; ++i) { for (int i = 0; i < ncomponents; ++i) {
component.add(tmpComponent[i]); component.add(tmpComponent[i]);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册