Thread.getStackTraceはJDK5u19以降ではもうメモリリークしない
まずは、昔の落ち穂拾いでも。
JDK5.0で多くの人を絶望のどん底に貶めた悪名高いバグとして、「Thread.getStackTrace()がC-Heapでメモリリークする」があります。 Bug ID: 6469701 java.lang.Thread.getStackTrace() causes memory leaks in the VM
未だにJDK5.0を使っているレガシープロジェクトは多く、その追加開発でハマる方々も多いので、一応追記。
このバグ、長年放置されてきたのですが、2009年にリリースされたupdate19で無事修正されています。
恥ずかしながら、私このバグ修正になかなか気が付きませんでした。
修正Bug IDが新しいものに差し替わっていて、そのタイトルが「Memory leak occurs in JVMTI」なんですもん。Bug ID: 6751861 Memory leak occurs in JVMTI(jdk5.0u16)
releasenoteのタイトルだけ見て判断しちゃだめ!という典型的な内容でした。関連Bug IDもたどらんとダメですね。
JDK7.0も出た2011年に積極的にJDK5.0を使う人はいないと思いますが、いい教訓になった一件です。