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