[Seasar-user:12790] Re: [Teeda]doOnceボタンでAlreadyRedirectingExceptionが発生

Koichi Kobayashi [E-MAIL ADDRESS DELETED]
2008年 2月 7日 (木) 22:00:05 JST


小林 (koichik) です.

Date:    Thu, 7 Feb 2008 16:20:38 +0900
From:    <[E-MAIL ADDRESS DELETED]>
To:      <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:12784] [Teeda]doOnceボタンでAlreadyRedirectingExceptionが発生

> teeda-html-example-1.0.11-SP4のDoubleSubmitのサンプルにて
> htmlに関わらずdoOnceボタンを連打するとAlreadyRedirectingExceptionが発生します。

報告ありがとうございます.
確認しました.

自分の環境 (Opera) では普通にダブル
クリックしても再現しなくて,かなり急いで
ダブルクリックをすると再現しました.
# 自分のダブルクリックが遅いのかも?

IE だと普通にダブルクリックすると
ブラウザがシングルクリック扱いに
してしまうため,速いダブルクリックが
やりにくくて再現が難しいですね.

ともあれ (JW),サブミット後のリダイレクトに
対する GET リクエストより先に,連打による 
POST リクエストが来ると発生します.

Teeda は同じ画面へリダイレクトでループすることを
避けるための情報を持っているのですが,この情報は
リダイレクトする際に設定され,それに対する
GET リクエストで描画が終わった際にクリアされます.

素早くダブルサブミットされた場合,この情報が
残った状態で POST リクエストの処理が行われ,
前と同じ画面にリダイレクトしようとしていると
判断してしまい,例外が発生します.

二重サブミットの場合,リクエストは POST で
あって,リダイレクトされてくることはないので,
このチェック自体がそもそも不要です.
削除して 1.0.12-sp1 をリリースしようと思います.


-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>



Seasar-user メーリングリストの案内