commons.betwixtのメモリリーク

commons.betwixtのメモリリーク情報があったが
http://www.abaoaqu.jp/hiro/blog/2006/07/
本文消失していたのでgoogleキャッシュから転載。
http://www.abaoaqu.jp/wordpress/?s=idByBeanMap
とかで検索してもヒットしないので、ひろとしさんはブログを作り直したのかな。
こーゆーときはpingとかトラックバックとか送るもんなんだろうけど
やり方を知らない(汗

2006年07月13日
commons.betwixtのメモリリーク??

何とか解消出来たような気がする。
原因はやはりHashMapを内部で使っている所にあった様だ。
複雑なXMLをでかつ、1分間に数十件のXML電文を生成しているシステムであるが故に使われなくなったヒープが解放されていない様であった。
そこで、org.apache.commons.betwixt.strategy.DefaultIdStoringStrategyにおいて、
private Map idByBeanMap;
private Map beanByIdMap;
と宣言されているクラス変数をHashMapではなくWeakHashMapを使う様に変更してみた。
WeakHashMapは弱参照のオブジェクトであり、HashMapのようにキャッシュされないので、使い終わったらGCによって、解放されるはずである。
この変更によって、とりあえず問題は回避できたようだ。
念のためもう暫く様子を見てみるが・・・

* by ひろとし
* at 23:07

追記:これみたい。fix済みだけど、Affects Versionとか無記名だなぁ。
http://issues.apache.org/jira/browse/BETWIXT-24