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