アプリケーションを開発中です。通常、ランタイム例外が発生した場合(nullポインタ例外など)ポートレットを一時的に無効にしました。しかし、何とか私のアプリケーションは、キャッチされていないエラーでは失敗しませんが、何も間違っていないかのようにページをレンダリングします(巨大なスタックトレースをコンソールに吐き出す)。なぜこれが悪いのだろうと思うかもしれません。Websphere Portalポートレットは例外の発生後に失敗し、リロード時にすべてのイベントを再取得します。
ボタンアクションメソッドでエラーが発生し、特定の入力フィールドが空の場合にはNullPointerException
になりました。さらに、このアクションメソッドでは、いくつかの情報がDBに挿入されました。ウェブフォームが黙って失敗したので、私はボタンを数回押しました。次に、入力欄にデータを入力し、もう一度ボタンを押しました。アクションハンドラメソッドは、NullPointerException
をこれ以上スローしません。
しかし、ハンドラメソッドは6回実行されました(失敗した送信ごとに1回+ 1回)。 明らかに、NullPointerExceptionを引き起こしたActionEvent
はアクションキューから削除されず、後続の要求で再取得されました。アプリケーションが想定通りに無効になった場合、これは問題ではありません。
誰もがこれを手伝ってくれますか?私は捕捉されなかった例外でポートレットを再度失敗させるか、レスポンスフェーズをレンダリングした後にフェイスイベントキューをクリアする何らかの方法を取る必要があります。