[Seasar-user:5851] Re: [S2Dao]Dtoをパラメータにしたページャで例外が発生してしまいます・・・
Hirotaka HONMA
[E-MAIL ADDRESS DELETED]
2007年 1月 23日 (火) 13:33:40 JST
本間@茅場町です。
on Mon, 22 Jan 2007 23:36:18 +0900
in [Seasar-user:5830] Re: [S2Dao]Dtoをパラメータにしたページャで例外が発生してしまいます・・・
"Motoba" <[E-MAIL ADDRESS DELETED]> wrote:
> >エラーが2つ発生しているようですが、どちらが先に発生していますか?
>
> EmptyStackException が先に発生していると思われます。
> 添付したトレースの通り、
> org.seasar.dao.pager.PagerContext.popArgs(PagerContext.java:59)
> にて、EmptyStackException が発生し、アプリ側には PSQLExcepti
> on がとんできます。
> ↑の例外が発生する可能性はどのような場合にあるのでしょうか?
popしている箇所はここなのですが、
http://svn.seasar.org/browse/branches/s2dao-1.0.x/s2-dao/src/main/java/org/seasar/dao/pager/PagerS2DaoInterceptorWrapper.java?revision=704&root=s2dao&view=markup
pushとpopが組になっていますのでEmptyStackExceptionにはならな
いように思えます。
と書いていて気づいたのですがpushはtryの外の方が良いですね。
pushが何らかの理由で失敗するとEmptyStackExceptionが起こって
しまいます。(でもpushは失敗しなさそうですけれど)
これは修正しておきます。
# それから、アプリケーション側でpopを呼んでいるとダメですけ
# れど、その可能性はどうでしょうか?
> >可能性としては、S2DaoのユーザとコマンドラインからのDBユーザが異なって
> >テーブル定義や権限が異なっている、でしょうか。
>
> この可能性はほぼゼロだと考えております。
> ページャの検索前に、同じ Dao にある selectAll を実行すると正
> 常に検索結果が取得できます。
はい。
> Pager の Example を見ていてちょっと気になりましたが、Pager
> 用の Dto は 〜Condition のような命名規則があるのでしょうか?
ありません。
org.seasar.dao.pager.PagerConditionをimplementsしていればOK
です。
Seasar-user メーリングリストの案内