[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 メーリングリストの案内