2011年8月21日日曜日

ObjectStreamでcode71

作成中のアプリの内部構造をいじってると、
java.io.StreamCorruptedException: invalid type code: 71
な例外が発生するようになってました。

スタックトレースを見ると、

java.io.StreamCorruptedException: invalid type code: 71
at java.io.ObjectInputStream.readString(Unknown Source)
at java.io.ObjectInputStream.readEnum(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
at java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)

で、どうやらEnum周り?でエラーが起こってるようです。

結果的には、Enumの識別子名が被ってたため
デシリアライズで問題が起こったようです。

定義を見直して、Enumの識別子の名前を変更したところ
問題は発生しなくなりました。

めでたしめでたし。

0 件のコメント: