[mayaa-user:683] Re: カスタムタグのreleaseメソッド呼び出しのタイミングについて

suga [E-MAIL ADDRESS DELETED]
2008年 8月 24日 (日) 23:24:35 JST


suga です。

On 8/24/08, 佐竹雅央 <[E-MAIL ADDRESS DELETED]> wrote:
> ただ、今の仕様ですとStrutsのLinkTagは再利用されれば必ずヌルポが
> 発生しそうなものですが、実際には極低確率でしか発生していません。
> それでマルチスレッド利用でのタイミングの問題を疑ったのですが。
> これは、ソフト参照によるキャッシュが再利用前に消えているのでしょうか・・・
> 余裕があるときに確認してみたいと思います。
>
> > これは Mayaa 実装時に見落としていたことで、少なくとも JSP 2.0 以降では
> > release() 後の再利用を想定しない実装の方が良さそうに思います。
> > また、その場合でも JSP 1.2 の範囲内なので、release() は再利用しない
> > ときに呼ぶ方が良さそうですね。
>
> とのことですが、改良版を提供していただくことは可能でしょうか?

現状の実装の都合上、ちょっと時間がかかりそうです。
SoftReference をやめて Jasper のような固定サイズ Hard Reference に
作り直す方が早いかもしれない、と検討中です。

Struts の LinkTag を見てみたのですが、release() が呼ばれた後で
再利用したからといって NullPointerException が発生することは
ないように思います。
release() が呼ばれていることが原因ではなく、他に原因があるのでは
ないでしょうか。

NullPointerException のスタックトレースと、発生する Link の利用パターンを
教えていただけますでしょうか。

-- 
suga ( [E-MAIL ADDRESS DELETED] )


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