[Seasar-user:21338] [S2Util]MessageFormatter#initialize()の処理について

湯浅 貴寛 [E-MAIL ADDRESS DELETED]
2012年 6月 5日 (火) 20:16:44 JST


湯浅と申します。
いつも大変便利に利用させてもらっています。

org.seasar.util.message.MessageFormatterのinitialize()メソッドの
処理について質問があります。
対象は S2Util の ver.0.0.0 です。

件のメソッドの処理内容は以下のようになっておりますが,
DisposableUtil.add();の後に
  initialized = true;
が必要ではないでしょうか?
(ResourceBundle.clearCache();の後に initialized = false; も必要?)

  protected static synchronized void initialize() {
      if (!initialized) {
          DisposableUtil.add(new Disposable() {
              @Override
              public void dispose() {
                  ResourceBundle.clearCache();
              }
          });
      }
  }

# MessageFormatter#getMessage() を介して MessageFormatter#getResourceBundle()
# を呼び出す処理を繰り返すと,org.seasar.util.misc.DisposableUtilオブジェクト
# から参照されたMessageFormatterがメモリ上に大量に出来上がるという事象に遭遇し
# 調査をしていたところ,上記の点が気になったので質問いたしました。

見当違いの質問でしたらご容赦下さい。


以上です。
よろしくお願いいたします。

-- 
Yuasa Takahiro


Seasar-user メーリングリストの案内