- PR -

S2DAOのDAOクラスinsertメソッドでNullPointerException

1
投稿者投稿内容
momo
常連さん
会議室デビュー日: 2006/11/06
投稿数: 35
投稿日時: 2007-10-10 20:29
JDK1.5.0
seasar2.3.15
S2DAO 1.0.39
の環境で開発しています。

DBの仕様変更が起こり、いくつかの型変更、項目追加にあわせてDTOを変更しました。
すると今まで動いていたinsert(DTO オブジェクト),insertBathc(DTO オブジェクトのArrayList)がNullPointerExceptionが出るようになっていしまいました。

同じDAOクラス内に記述されているSelectメソッド、Updateメソッドは正常に実行されます。
もちろんinsertメソッドに渡しているDTOオブジェクトはNULLではありません。


出ているスタックとレースは以下のようなものです。

java.lang.NullPointerException
at org.seasar.framework.util.MethodUtil.invoke(MethodUtil.java:42)
at org.seasar.framework.beans.impl.PropertyDescImpl.getValue(PropertyDescImpl.java:117)
at org.seasar.dao.impl.InsertAutoDynamicCommand.createInsertPropertyTypes(InsertAutoDynamicCommand.java:106)
at org.seasar.dao.impl.InsertAutoDynamicCommand.execute(InsertAutoDynamicCommand.java:52)
at org.seasar.dao.interceptors.S2DaoInterceptor.invoke(S2DaoInterceptor.java:53)
at org.seasar.dao.pager.PagerS2DaoInterceptorWrapper.invoke(PagerS2DaoInterceptorWrapper.java:64)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:43)
at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:50)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:43)
at org.seasar.framework.aop.interceptors.InterceptorChain.invoke(InterceptorChain.java:42)
at jp.co.xxx.ecc.edi.dbcommon.dao.EcOrderSlipHeaderDao$$EnhancedByS2AOP$$1198891$$MethodInvocation$$insert8.proceed(MethodInvocationClassGenerator.java)
at jp.co.xxx.ecc.edi.dbcommon.dao.EcOrderSlipHeaderDao$$EnhancedByS2AOP$$1198891.insert(EcOrderSlipHeaderDao$$EnhancedByS2AOP$$1198891.java)
at jp.co.xxx.ecc.edi.dbcommon.logic.EccShipOrderLogicImpl.insertOrderSlips(EccShipOrderLogicImpl.java:143)
at jp.co.xxx.ecc.edi.dbcommon.logic.EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27.insertOrderSlips$$invokeSuperMethod$$(EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27.java)
at jp.co.xxx.ecc.edi.dbcommon.logic.EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27$$MethodInvocation$$insertOrderSlips0.proceed(MethodInvocationClassGenerator.java)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:45)
at org.seasar.extension.tx.RequiredInterceptor.invoke(RequiredInterceptor.java:40)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:43)
at org.seasar.framework.aop.interceptors.TraceInterceptor.invoke(TraceInterceptor.java:50)
at org.seasar.framework.aop.impl.NestedMethodInvocation.proceed(NestedMethodInvocation.java:43)
at org.seasar.framework.aop.interceptors.InterceptorChain.invoke(InterceptorChain.java:42)
at jp.co.xxx.ecc.edi.dbcommon.logic.EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27$$MethodInvocation$$insertOrderSlips0.proceed(MethodInvocationClassGenerator.java)
at jp.co.xxx.ecc.edi.dbcommon.logic.EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27.insertOrderSlips(EccShipOrderLogicImpl$$EnhancedByS2AOP$$be0e27.java)
at jp.co.xxx.ecc.edi.send.EccShipOrder.insertXML2DB(EccShipOrder.java:242)
以下略

このようなエラーが起きるのは何が原因かさえわかればいいのですが、添付されているソースを見ても
MethodUtil.java:42で使用している引数のmethodがnullで、このメソッドをコールしている
PropertyDescImplクラスのreadMethodメンバがnullなんだなということしかわからず、
このメンバ変数にオブジェクトのインスタンスセットしている箇所がさっぱりわかりません。

どなたか原因のヒントになるようなことを知っている方はいらっしゃらないでしょうか。
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2007-10-11 01:11
折角日本語でのサポートが行われていますので、
本家のMLで質問されてみてはいかがでしょう。
momo
常連さん
会議室デビュー日: 2006/11/06
投稿数: 35
投稿日時: 2007-10-11 10:10
常駐先にいるので、規定でMLに参加できずこちらで質問してしまいました。
すいません。

結局新しく追加したカラムに対応したメンバのゲッターメソッドの名前が
ほんのわずか間違っていたためだったようです。

今後このような形のエラーが出たときは、ゲッターセッターの
名前間違いを疑っていきたいと思います。
1

スキルアップ/キャリアアップ(JOB@IT)