[TUIGWAA-96] 検索結果の表示に削除リンクをつけ、表示された結果の「削除」を押すとアプリケーションエラーが発生する Created: 2006-09-26  Updated: 2006-09-29  Resolved: 2006-09-29

Status: Resolved
Project: Tuigwaa
Component/s: database, plugin
Affects Version/s: 0.9.1
Fix Version/s: 1.0

Type: Bug Priority: Major
Reporter: Reiji, Satomi Assignee: someda
Resolution: Fixed Votes: 0
Labels: None


 Description   

リビジョン : 1027です。

エラーログ↓↓

java.lang.NullPointerException
at org.seasar.tuigwaa.model.common.EntityUtils.getKeys(EntityUtils.java:375)
at org.seasar.tuigwaa.model.DAOServiceImpl.getFunctionSet(DAOServiceImpl.java:178)
at org.seasar.tuigwaa.model.DAOServiceImpl.getDAO(DAOServiceImpl.java:164)
at org.seasar.tuigwaa.model.DataServiceImpl.delete(DataServiceImpl.java:63)
at org.seasar.tuigwaa.model.DataServiceImpl$$EnhancedByS2AOP$$686fdca5.delete$$invokeSuperMethod$$(DataServiceImpl$$EnhancedByS2AOP$$686fdca5.java)
at org.seasar.tuigwaa.model.DataServiceImpl$$EnhancedByS2AOP$$686fdca5$$MethodInvocation$$delete6.proceed(MethodInvocationClassGenerator.java)
at org.seasar.tuigwaa.logic.aop.MethodDecorateInterceptorImpl.invoke(MethodDecorateInterceptorImpl.java:25)
at org.seasar.tuigwaa.model.DataServiceImpl$$EnhancedByS2AOP$$686fdca5$$MethodInvocation$$delete6.proceed(MethodInvocationClassGenerator.java)
at org.seasar.tuigwaa.model.DataServiceImpl$$EnhancedByS2AOP$$686fdca5.delete(DataServiceImpl$$EnhancedByS2AOP$$686fdca5.java)
at org.seasar.tuigwaa.controller.DatabaseAction.deleteRecord(DatabaseAction.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.actions.MappingDispatchAction.execute(MappingDispatchAction.java:169)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.seasar.struts.processor.S2TilesRequestProcessor.processActionPerform(S2TilesRequestProcessor.java:122)
at org.seasar.struts.processor.AcceptorImpl.process(AcceptorImpl.java:126)
at org.seasar.struts.processor.S2TilesRequestProcessor.process(S2TilesRequestProcessor.java:61)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.tuigwaa.util.filter.TgwFilter.doFilter(TgwFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.tuigwaa.util.filter.EncodingFilter.doFilter(EncodingFilter.java:65)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.tuigwaa.util.filter.ForwardFilter.doFilter(ForwardFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.struts.filter.S2StrutsFilter.doFilter(S2StrutsFilter.java:45)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.seasar.framework.container.filter.S2ContainerFilter.doFilter(S2ContainerFilter.java:60)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)

削除リンクによって呼び出されたURL↓↓

/tuigwaa/testtest/deleteRecord.do?searchRedirectUrl=/tuigwaa/testtest/searchtgw_entity_1.do%3FtableName%3Dtgw_entity%26_pageName%3D%2583g%2583b%2583v%2583y%2581%255B%2583W%26max%3D10%26tgw_attr%3D%2597%25A2%258C%25A9%26button%3D%258C%259F%258D%25F5&tableName=tgw_entity&pageName=%E3%83%88%E3%83%83%E3%83%97%E3%83%9A%E3%83%BC%E3%82%B8&id=1



 Comments   
Comment by someda [ 2006-09-29 ]

ボタン、リンクともに確認

Comment by someda [ 2006-09-29 ]

ActionLinkFactory#bindDeleteActionLink でパスを生成する際に、
検索結果がある場合に、tableName パラメータが、CharUtil#createQuery にて
& にて生成されてしまう。

通常の検索結果が無い場合には、tableName パラメータが deleteRecord.do の
一番最初のパラメータであることから、DatabaseAction#deleteRecord からでも
正しく entity 名を取得できていたが、redirectUrl が先に入ることによって、entity 名を
取得することが出来なくなっていた。

対処としては、tableName パラメータも、id と同様に、& でつないで渡すことにより
ボタンの場合でもリンクの場合でも正常に動作するようになる。

pageName は、StrutsUtil#getURLDecodedParameter を利用することにより問題なく取得できている。

Generated at Fri Apr 19 12:43:13 JST 2024 using Jira 9.15.0#9150000-sha1:9ead8528714127d8cfabf2446010d7e62c0a195c.