[Seasar-user:5902] Re: [S2Container]S2FrameworkTestCase/UnitClassLoaderの実装について

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2007年 1月 26日 (金) 01:00:17 JST


小林 (koichik) です.

Date:    Thu, 25 Jan 2007 21:44:40 +0900
From:    kubo <[E-MAIL ADDRESS DELETED]>
To:      [E-MAIL ADDRESS DELETED]
Subject: [Seasar-user:5901] Re: [S2Container]S2FrameworkTestCase/UnitClassLoaderの実装について

> Dao(EnhanceされるClass)のInstanceを
> 他のSingleton-Component(EnhanceされないClass)のInstanceに
> SetterInjectionさせてはいけないものでしょうか?

システムクラスローダーからロードされたクラス(A)の
インスタンス(a)が,エンハンスされたクラス(B)の
インスタンス(b)を参照する場合,インスタンス(a)が
GC されるのであれば問題ありません.

しかし,クラス(A)の static フィールドから
インスタンス(b)を参照する場合は,クラス(A)は
アンロードされないため,static フィールドが明示的に
クリアされない限りインスタンス(b)も GC されず,
クラス(B)もアンロードされません.
結果,UnitClassLoader も GC されません.

前のメールでキャッシュと書いたのは,こういう
static フィールドを指しています.


-- 
<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 メーリングリストの案内