[Seasar-user:4425] Re: S2FrameworkTestCase の unbindFields

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2006年 8月 28日 (月) 02:30:23 JST


小林 (koichik) です.

亀レス気味ですが...

Date:    Thu, 3 Aug 2006 13:08:39 +0900
From:    "Ito Yoshiichi" <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:4247] Re: S2FrameworkTestCase の unbindFields

> > JUnitは、テストメソッドごとにTestCaseを作り直しているはずなので、
> > テストメソッドの後にフィールドをクリアしても関係ないじゃん
> > という理由で、unbindFieldsがdeprecatedになっています。
> 
> 簡単なサンプルで試したところ、確かに各メソッドごとに
> 必要ならばヒープが解放されているみたいでした。
> でも、うちのプロジェクトの場合、
> 何度か試してみましたが、null セットする/しないで
> java.lang.OutOfMemoryError: Java heap space
> 出る/出ないが変わるんですよね。
> とりあえず個別対応で対処します。
> また何かわかりましたらご報告します。

どうやら,JUnit の TestResult が TestCase への参照を持ったままに
なっていて GC されないため,テストクラスのフィールドをクリアしないと
それらも到達可能なままとなってしまい,GC されずヒープに残って
しまうようです.

そんなわけで (どんなわけで?),unbindFields を復活させました.
S2.3・S2.4 とも次のリリースに含まれます.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>




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