jp.terasoluna.fw.web.struts
クラス MessageFormatCacheMapFactory
java.lang.Object
jp.terasoluna.fw.web.struts.MessageFormatCacheMapFactory
public class MessageFormatCacheMapFactory
- extends Object
Strutsのバグ(STR-2172)回避用HashMap(MessageFormatキャッシュ)のファクトリクラス。
StrutsのMessageResourcesは、キャッシュからgetしたMessageFormatを同期化せずに複数スレッドでアクセス可能にしている。
このバグを回避するための拡張HashMapを生成する。
参考)
少なくともSun JDKの実装を使用している限りは、日付時刻系のサブフォーマット({0,date}等)を使用しない限り、
MessageFormatの仕様には反するものの、同一インスタンスのformatメソッドを複数スレッドで同時に実行しても、
全く問題ない。(これが、StrutsのMessageResourcesのバグSTR-2172がWon't Fixとなり、修正されなかった理由。)
このクラスではバグの回避方法を調整可能としている。system.propertiesに以下の設定を行う。