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もやってみようかと思ったが、資料が無くて無理だった。