finally{
 if (null!=out) out.close();
とか
catch(){
 if (null!=out) out.close();
これってcloseの前にタイムアウトなどio例外1が起きたら
out.closeの時にそもそも「streamが異常事態」っていうio例外2がさらに発生して以前のio例外1が報告されないんじゃない。
前々から気になっていたけど。