OutOfMemoryで落ちてるっぽいな〜でもエラーログが出てないな〜と思ったら。
OutOfMemoryってExceptionじゃないんだw
java.lang.Object +--java.lang.Throwable +--java.lang.Error +--java.lang.VirtualMachineError +--java.lang.OutOfMemoryError
という構造なのね。
全ての例外(エラー)=Exceptionと思い込んでたorz
さらに、Throwable=インターフェースと思い込んでたOrz
ということで、エラーログを出力するような場合のtry-catchは、
try { (OutOfMemoryErrorが出るような処理) } catch (Exception e) { (エラーログを出力する処理) }
ではなく、
try { (OutOfMemoryErrorが出るような処理) } catch (Throwable t) { (エラーログを出力する処理) }
ってな感じで捕まえんと、ちゃんとエラーログが出力されんことが判明。