T2とCDIの組み合わせ エラー箇所

もう一度環境作って再現させた。

java.lang.NullPointerException
        at t2cdi.RequestData_$$_javassist_39.toString(RequestData_$$_javassist_39.java)
        at java.lang.String.valueOf(String.java:2826)
        at java.lang.StringBuilder.append(StringBuilder.java:115)
        at org.t2framework.commons.util.PrintableUtil.toPrintableString(PrintableUtil.java:56)
        at org.t2framework.t2.action.impl.ActionInvokerFilterImpl.logInvokeAction(ActionInvokerFilterImpl.java:188)
        at org.t2framework.t2.action.impl.ActionInvokerFilterImpl.logInvokeAction(ActionInvokerFilterImpl.java:195)
        at org.t2framework.t2.action.impl.ActionInvokerFilterImpl.invokeAction(ActionInvokerFilterImpl.java:135)
        at org.t2framework.t2.action.impl.ActionInvokerFilterImpl.invoke(ActionInvokerFilterImpl.java:117)
        at org.t2framework.t2.action.impl.ActionFilterChainImpl.invokeChain(ActionFilterChainImpl.java:108)
        at org.t2framework.t2.action.impl.ActionArgumentsPreparationFilterImpl.invoke(ActionArgumentsPreparationFilterImpl.java:78)
        at org.t2framework.t2.action.impl.ActionFilterChainImpl.invokeChain(ActionFilterChainImpl.java:108)
        at org.t2framework.t2.action.impl.PageCreationFilterImpl.invoke(PageCreationFilterImpl.java:89)
        at org.t2framework.t2.action.impl.ActionFilterChainImpl.invokeChain(ActionFilterChainImpl.java:108)
        at org.t2framework.t2.action.impl.ExceptionHandlerActionFilterImpl.invoke(ExceptionHandlerActionFilterImpl.java:79)
        at org.t2framework.t2.action.impl.ActionFilterChainImpl.invokeChain(ActionFilterChainImpl.java:108)
        at org.t2framework.t2.action.impl.ActionInvokerImpl.invoke(ActionInvokerImpl.java:121)
        at org.t2framework.t2.filter.T2Filter.invokeAction(T2Filter.java:253)
        at org.t2framework.t2.filter.T2Filter.doFilter(T2Filter.java:214)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:277)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:188)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:641)
        at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
        at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
        at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
        at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
        at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
        at com.sun.grizzly.comet.CometEngine.executeServlet(CometEngine.java:473)
        at com.sun.grizzly.comet.CometEngine.handle(CometEngine.java:341)
        at com.sun.grizzly.comet.CometAsyncFilter.doFilter(CometAsyncFilter.java:84)
        at com.sun.grizzly.arp.DefaultAsyncExecutor.invokeFilters(DefaultAsyncExecutor.java:161)
        at com.sun.grizzly.arp.DefaultAsyncExecutor.interrupt(DefaultAsyncExecutor.java:137)
        at com.sun.grizzly.arp.AsyncProcessorTask.doTask(AsyncProcessorTask.java:88)
        at com.sun.grizzly.http.TaskBase.run(TaskBase.java:189)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
        at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
        at java.lang.Thread.run(Thread.java:619)

ちなみにこの例外の直後にちゃんとrequestScopeのFormを破棄している。ただし、その後のインスタンスの取得で失敗するようになるが。


アクションの中でインスタンス取得する記述をするとまったく問題ないことがすごく気になる。フォームのインスタンス取得タイミングとアクション実行とでなんか大きい違いがあるのかな。

pluginもやってみようかと思ったが、資料が無くて無理だった。