Sponsored Link
JVMがGCを行えるように、開放するインスタンスへの参照を切っていたのだけれど、なぜか例外が投げられ続けていました。色々調べてみたら、java.io.ObjectOutputStream#writeObject(Object obj)の部分で、書き出されたobjの状態が保持され続けるので、いつまでたってもGCが始まらなかったのが原因でした。
解決法は、java.io.ObjectOutputStream#reset()メソッドでストリームが保持している状態を無効にすることで、不要インスタンスをGCの対象に入れることでした。
関連すると思われる記事:
- java.io.StreamCorruptedExceptionが発生した原因とその解決策の一例
- Java: ローカルホスト名とIPアドレスを取得 – InetAddress.getLocalHost()メソッド
- Java, Servlet: No suitable driver found for “~” の原因と解決法
- JavaとRubyで文字列の終端の扱いの違い
- JavaプログラムからExcite翻訳を利用
Sponsored Link
