[Seasar-user:17860] [teeda] ForEach で NullPointerException

[E-MAIL ADDRESS DELETED] [E-MAIL ADDRESS DELETED]
2009年 6月 26日 (金) 00:55:47 JST


いつもお世話になっております。
アワネと申します。

teedaでForEachで例外が発生する場合があります。
原因等わかりますでしょうか。
お忙しいと思いますが、ご確認よろしくお願いします。

【内容】
CoolDeployでhtmlのForEachネスト(6段階)部分で、
データ表示に時間がかかる(データ量が多いため)場合に、
NullPointerExceptionが発生することがあります。

【検証状況】
100%の再現率ではなく、例外にならない場合もあります。
該当の例外が発生すると、ForEachがある画面で常に同様の例
外が発生します。(別セッションでも)
ForEachに対するItemsのサイズが0の場合は問題ないです。(ForEach
の処理が実行されないため)
APサーバを再起動するまで同じ例外が発生し続けます。

teeda-html-example等で同様の例外が発生するサンプルを作成
しようと試みましたが、
うまく出来ませんでした。

そもそもデータ量が多いため、forEachのネスト部分をajaxで
の取得に切り替えようと思ってはいるのですが、
すぐに対応できないため、回避策等ありましたらご教授くださ
い。

【使用バージョン】
weblogic9.2
seasar2.4.37
teeda1.1.13-sp7

【スタックトレース】
一部独自クラスを「#」でマスクしています。
・パターン1
java.lang.NullPointerException
	at
org.seasar.framework.beans.impl.BeanDescImpl.hasPropertyDesc(BeanDescImpl.java:126)
	at
org.seasar.teeda.extension.component.TForEach.setValue(TForEach.java:680)
	at
org.seasar.teeda.extension.component.TForEach.bindRowIndex(TForEach.java:529)
	at
org.seasar.teeda.extension.render.TForEachRenderer.encodeForEachChildren(TForEachRenderer.java:110)
	at
org.seasar.teeda.extension.render.TForEachRenderer.encodeChildren(TForEachRenderer.java:75)
	at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:339)
	at
javax.faces.render.Renderer.encodeChildren0(Renderer.java:57)
	at
javax.faces.render.Renderer.encodeChildren(Renderer.java:48)
	at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:339)
	at
org.seasar.teeda.core.util.RendererUtil.renderChild(RendererUtil.java:326)
	at
org.seasar.teeda.core.util.RendererUtil.renderChildren(RendererUtil.java:340)
	at
org.seasar.teeda.core.util.RendererUtil.renderChild(RendererUtil.java:328)
	at
org.seasar.teeda.core.util.RendererUtil.renderChildren(RendererUtil.java:340)
	at
org.seasar.teeda.extension.render.TViewRootRenderer.encodeBegin(TViewRootRenderer.java:65)
	at
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:330)
	at
javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:100)
	at
javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:247)
	at
javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:184)
	at
org.seasar.teeda.extension.taglib.TViewTag.doStartTag(TViewTag.java:98)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.processTag(ElementProcessorImpl.java:145)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:138)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:119)
	at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:157)
	at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:143)
	at
org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:39)
	at
org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
	at
org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:131)
	at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:101)
	at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
	at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
	at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
	at
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at ###Filter.doFilter(###Filter.java:58)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:71)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at
org.seasar.teeda.extension.filter.MultipartFormDataFilter.doFilter(MultipartFormDataFilter.java:83)

・パターン2
java.lang.NullPointerException
	at
org.seasar.framework.util.CaseInsensitiveMap.get(CaseInsensitiveMap.java:58)
	at
org.seasar.framework.beans.impl.BeanDescImpl.hasPropertyDesc(BeanDescImpl.java:126)
	at
org.seasar.teeda.extension.component.TForEach.setValue(TForEach.java:680)
	at
org.seasar.teeda.extension.component.TForEach.bindRowIndex(TForEach.java:529)
	at
org.seasar.teeda.extension.render.TForEachRenderer.encodeForEachChildren(TForEachRenderer.java:110)
	at
org.seasar.teeda.extension.render.TForEachRenderer.encodeChildren(TForEachRenderer.java:75)
	at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:339)
	at
javax.faces.render.Renderer.encodeChildren0(Renderer.java:57)
	at
javax.faces.render.Renderer.encodeChildren(Renderer.java:48)
	at
javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:339)
	at
org.seasar.teeda.core.util.RendererUtil.renderChild(RendererUtil.java:326)
	at
org.seasar.teeda.core.util.RendererUtil.renderChildren(RendererUtil.java:340)
	at
org.seasar.teeda.core.util.RendererUtil.renderChild(RendererUtil.java:328)
	at
org.seasar.teeda.core.util.RendererUtil.renderChildren(RendererUtil.java:340)
	at
org.seasar.teeda.extension.render.TViewRootRenderer.encodeBegin(TViewRootRenderer.java:65)
	at
javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:330)
	at
javax.faces.component.UIViewRoot.encodeBegin(UIViewRoot.java:100)
	at
javax.faces.webapp.UIComponentTag.encodeBegin(UIComponentTag.java:247)
	at
javax.faces.webapp.UIComponentTag.doStartTag(UIComponentTag.java:184)
	at
org.seasar.teeda.extension.taglib.TViewTag.doStartTag(TViewTag.java:98)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.processTag(ElementProcessorImpl.java:145)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:138)
	at
org.seasar.teeda.extension.html.processor.ElementProcessorImpl.process(ElementProcessorImpl.java:119)
	at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:157)
	at
org.seasar.teeda.extension.html.impl.HtmlViewHandler.renderView(HtmlViewHandler.java:143)
	at
org.seasar.teeda.core.lifecycle.impl.RenderResponsePhase.executePhase(RenderResponsePhase.java:39)
	at
org.seasar.teeda.core.lifecycle.AbstractPhase.execute(AbstractPhase.java:57)
	at
org.seasar.teeda.core.lifecycle.LifecycleImpl.render(LifecycleImpl.java:131)
	at
javax.faces.webapp.FacesServlet.service(FacesServlet.java:101)
	at
weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
	at
weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
	at
weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:283)
	at
weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at ###Filter.doFilter(###Filter.java:58)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at
org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:79)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)
	at
org.seasar.framework.container.hotdeploy.HotdeployFilter.doFilter(HotdeployFilter.java:71)
	at
weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:42)

以上、よろしくお願いします。

--------------------------------------
Power up the Internet with Yahoo! Toolbar.
http://pr.mail.yahoo.co.jp/toolbar/


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