[Seasar-user:3122] Re: [S2JSF] ページの初期化処理で無限ループ発生

Hirotaka HONMA manhole
2006年 1月 26日 (木) 18:21:07 JST


本間です。

on Wed, 25 Jan 2006 16:16:15 +0900
in [Seasar-user:3120] Re: [S2JSF] ページの初期化処理で無限ループ発生
松山 大樹 <t.matsuyama @ wowcom.co.jp> wrote:

>  松山です。
> 
>  現象を確認するためのサンプルを作成しました。
>  解凍後、/WEB-INF/lib の下に、s2jsf-blank の/WEB-INF/lib/*.jar 
> をコピーしてきてください。
> 
>  http://localhost:8080/s2jsf-test2/ で実行できます。
> 
>  最初に表示されるメニューに3つのリンクがあります。
>  1つめは、正常に初期化が行われ表示されます。
>  2つめは、クリックすると、初期化処理が無限に実行されます。
>  3つめは、クリックすると、最初の1回はエラーページが表示されますが、
> 2回めは、ブラウザに例外情報が表示されます。

現象を修正しました。(サンプルありがとうございます)
SNAPSHOT版をこちらへおいておきます。
http://hotchpotch.sourceforge.jp/temp/s2-jsf-1.0.14-SNAPSHOT.jar
http://hotchpotch.sourceforge.jp/temp/s2-jsf-1.0.14-SNAPSHOT-sources.jar

■原因

dispatchでsubmitした画面へ遷移した際に、再度decode処理が行わ
れていたことでした。

(「3つめ」がループしないのは、[Seasar-user:2725]で対応した
ためです。)

■修正内容

リクエスト内で初回のLifecycleでのみ
- APPLY_REQUEST_VALUES (2)
- PROCESS_VALIDATIONS  (3)
- UPDATE_MODEL_VALUES  (4)
- INVOKE_APPLICATION   (5)
のフェーズを実行するように変更しました。
(dispatch後のLifecycleではスキップします。)
初期化Actionは RENDER_RESPONSE (6) フェーズで行っているため、
この変更の影響を受けません。

--
  本間 宏崇 /** Hirotaka HONMA */
  manhole @ arksystems.co.jp
  ARK Systems Co., Ltd. : 株式会社アークシステム
  Tel. 03-3666-8140    Fax. 03-3666-8143
  〒103-0026 東京都中央区日本橋兜町8-8 中島ビル6F



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