[Seasar-user:17862] Re: [teeda] ForEach で NullPointerException
[E-MAIL ADDRESS DELETED]
[E-MAIL ADDRESS DELETED]
2009年 6月 26日 (金) 02:42:27 JST
小林様
アワネです。ご回答ありがとうございます。
> ソースを見る限り,この場所で NPE が発生することは
> あり得ないはずです.
こちらでもソースを確認し、同じ認識です。
ご指摘のとおり、JVM は JRockit を使用しています。
しかし、いままで最適化によって
正確な例外の発生位置が分からなくなったりしたことはありま
せんでした。
(いままでスタックトレースでエラー個所をしっかり判明する
ことができています。)
引き続き、Sun JDK + Tomcat で再現するサンプル作成を試み
ます。
また現状のソースをTomcatで実行した場合も再現するかも合わ
せて確認してみます。
以上、よろしくお願いします。
--- Koichi Kobayashi <[E-MAIL ADDRESS DELETED]> wrote:
> 小林 (koichik) です.
>
> Date: Fri, 26 Jun 2009 00:55:47 +0900 (JST)
> From: <[E-MAIL ADDRESS DELETED]>
> To: [E-MAIL ADDRESS DELETED]
> Subject: [Seasar-user:17860] [teeda] ForEach で
> NullPointerException
>
> > teedaでForEachで例外が発生する場合があります。
> > 原因等わかりますでしょうか。
> (略)
> > 【スタックトレース】
> > 一部独自クラスを「#」でマスクしています。
> > ・パターン1
> > java.lang.NullPointerException
> > at
> >
>
org.seasar.framework.beans.impl.BeanDescImpl.hasPropertyDesc(BeanDescImpl.java:126)
>
> ソースを見る限り,この場所で NPE が発生することは
> あり得ないはずです.
> 実際のコードは
>
> return propertyDescCache.get(propertyName)
> != null;
>
> となっていて,フィールド propertyDescCache は
>
> private CaseInsensitiveMap propertyDescCache =
> new CaseInsensitiveMap();
>
> と初期化子でインスタンスを設定した後はどこでも
> 更新していないので,null になることもありません.
>
> > ・パターン2
> > java.lang.NullPointerException
> > at
> >
>
org.seasar.framework.util.CaseInsensitiveMap.get(CaseInsensitiveMap.java:58)
>
> こちらも同様です.
> 該当のコードは
>
> return super.get(convertKey(key));
>
> となっていて,ここでは NPE は発生しません.
>
> WebLogic をお使いということなので,JVM は
> JRockit なのだと思いますが,最適化によって
> 正確な例外の発生位置が分からなくなったり
> するのでしょうか?
>
> 実際に NPE が発生している場所が分からないと
> 調査が難しいので,JRockit の最適化の設定を
> 変えるなどして NPE が本当に発生した場所を
> 取得できるようにするか,Sun JDK + Tomcat でも
> 再現するサンプルを提供してもらえると助かります.
>
>
> --
> <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 mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/
Seasar-user メーリングリストの案内