>>362
rがnullにならないのはgcがたぶん別スレッド扱いになってるから。
その場合は r.close(); r = null; をアトミックになるようにすればいい。