[Seasar-user:242] Re: RuletClassLoader について

B mib.jp seasarml@mib.jp seasarml
2003年 11月 30日 (日) 11:52:55 JST


こんにちは、あもいです。

 /* ----------------------------------------------------------------*/
 /|> 現状のコード(20031128)で試してみたんですが、
 /|> 再現できませんでした。
 /|> #20031126との違いは、SqletでSELECT ... AS ...の
 /|> #対応をしただけです。
 /* ----------------------------------------------------------------*/
すみません!おおぽかをやらかしていたようです…
どうやら、publicアクセスなら問題なさそうですね。

こちらのテストでは、コンストラクタをアクセス無指定にしてまして、
読めない読めないと騒いでいました。
#最初、この問題を発見したのは、private内部クラスでのことでした。

TestRulet3UtilとTestRulet3は同じパッケージにおいているものとして、
TestRulet3Util#greeting()をprotectedまたは無指定にすると、
java.lang.IllegalAccessErrorの発生が再現されるかと思います。

この場合でも、先のクラスローダを使用すると、
問題なく読み込めるようになります。

 /* ----------------------------------------------------------------*/
 /|> Rulet以外のクラスは、親ClassLoaderがロードするので、
 /|> RuletClassLoaderは、関与しないのではないか思っているのですけど。
 /* ----------------------------------------------------------------*/
クラスローダが違ってしまうと、パッケージ関係も受け継がれないので、
上記のような問題になるのかな、と推測しています。

-------------------------------------------------------
A M O I
GPSSでFlashの世界が広がる(かも)
http://www.geocities.co.jp/SiliconValley-PaloAlto/8242/




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