NotSerializableException только в первый раз
Я получаю NotSerializableException в objStream.writeObject(myobj) только в первый раз.
myobj внутренне содержит список объектов. Тот же myobj, когда он не первый, сериализуется нормально. Есть идеи, пожалуйста? Код выглядит примерно так:
public class MyObj implements Serializable
{
private List<MyOtherObjects> objects;
};
for (myobj : myobjs) {
byteOutputStream = new ByteArrayOutputStream();
ObjectOutputStream objStream = new ObjectOutputStream(byteOutputStream);
objStream.writeObject (myobj);
objStream.flush();
objStream.close();
file.write(byteOutputStream.toByteArray());
...
Трассировки стека:
DoCompute flush thread [XRXTransactionQueue-1-1402065645208--1569561033][1] where
[1] java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1,156)
[2] java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1,509)
[3] java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1,474)
[4] java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1,392)
[5] java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1,150)
[6] java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:326)
[7] utils.DoCompute$FileHandler.flush (DoCompute.java:678)
1 ответ
Скорее всего, у вас есть некоторые из MyOtherObjects, не реализующие Serializable, тот факт, что MyObj реализует Serializable, не гарантирует, что он может быть на самом деле Serializable, если только все его члены не могут быть также сериализованы.
Проверьте иерархию MyOtherObjects, там вы должны найти какой-то не сериализуемый объект.