きどたかのブログ

いつか誰かがこのブログからトラブルを解決しますように。

続 お手上げなIOExceptionと出会った

今回のは1.5.0_12を使ってる前提です。
それに関係しそうなものをsun bug databaseから地道にピックアップ中・・・。

1.5.0_14でfixされてるこの事象。(「ファイルのクローズに失敗後、クローズ操作を繰り返さない」)
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6593729
ここで出てきた「Stale NFS Handle」っつーのも気になるキーワードだなぁ。
んーむ、そんなメッセージをOSが吐いてた形跡はないんだけどな・・・。


僕が遭遇してる事象では、こういう事象が合わせて出ている。
丁寧なstreamのclose処理が災いしてこんなのが出てくるのだ。
java.lang.IllegalStateException: Current state = FLUSHED, new state = CODING_END
http://bugs.sun.com/view_bug.do?bug_id=6712096


bad file numberに関するメモ。
どうやらOSによってメッセージが異なるケースにハマっている可能性がある。
一度閉じられたstreamに対して操作をすると、
Solarisの場合、bad file numberが出るかも知れない。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6359397


こいつも関係あるかな?けっこう致命傷だぜ。
「1.4.2 と Tiger で、IllegalStateException によってバッファー利用ストリームデータが破棄される 」
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5005426



ムキー!!
がっつりダウンロードしてきたぞ。
何をって? Javaのnativeなソースをだ!
FileInputStream.cを読むと、どうやらすぐfileCloseを呼び出してるようだ。
それはどこに書かれてる?こいつはきっとio_util_md.cに書いてるやつだな。
JVM_Closeはどこでっしゃろ??
/hotspot/src/share/vm/prims/jvm.cのやつっぽい。


こっから先が辛いorz
メモ帳が唯一の武器。



ぜんぜん関係ないけどjavapで良く見るものらが羅列されてるファイル発見。
/j2se/src/share/javavm/include/opcodes.h