[Seasar-user:18964] Re: s2chronosでExcepitonがDIされ続ける

Yasutaka Ebina [E-MAIL ADDRESS DELETED]
2009年 12月 4日 (金) 10:12:26 JST


加藤(j5ik2o)さん

お世話になります。えびなです。

サンプルソースを作成しましたので、ご確認のほど宜しくお願い致します。

---ソースコード---------------

@Task
@CronTrigger(expression = "*/10 * * * * ?")
public class SampleTask {
  private int count = 0;
  public Exception exception = null;

  public void start() {
  ++count;
  exception = null;

  log("------------");
  log(" start(): COUNT=" + count + ", EXCEPTION=" + exception);
  }

  public void doExecute() {
  log("doExecute(): COUNT=" + count + ", EXCEPTION=" + exception);

  if (count % 2 == 0) {
  RuntimeException e = new RuntimeException("COUNT=" + count);

  log("doExecute(): throw " + e);
  throw e;
  }
  }

  public void end() {
  log(" end(): COUNT=" + count + ", EXCEPTION=" + exception);
  }

  private void log(String s) {
  // ログ出力
  }
}

---ログ---------------
**I* <2009/12/03 18:30:21.203> ------------
**I* <2009/12/03 18:30:21.203> start(): COUNT=1, EXCEPTION=null
**I* <2009/12/03 18:30:21.234> doExecute(): COUNT=1, EXCEPTION=null
**I* <2009/12/03 18:30:21.234> end(): COUNT=1, EXCEPTION=null
**I* <2009/12/03 18:30:31.156> ------------
**I* <2009/12/03 18:30:31.156> start(): COUNT=2, EXCEPTION=null
**I* <2009/12/03 18:30:31.156> doExecute(): COUNT=2, EXCEPTION=null
**I* <2009/12/03 18:30:31.156> doExecute(): throw
java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:30:31.187> end(): COUNT=2,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:30:41.156> ------------
**I* <2009/12/03 18:30:41.156> start(): COUNT=3, EXCEPTION=null
**I* <2009/12/03 18:30:41.187> doExecute(): COUNT=3, EXCEPTION=null
**I* <2009/12/03 18:30:41.187> end(): COUNT=3,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:30:51.156> ------------
**I* <2009/12/03 18:30:51.156> start(): COUNT=4, EXCEPTION=null
**I* <2009/12/03 18:30:51.171> doExecute(): COUNT=4, EXCEPTION=null
**I* <2009/12/03 18:30:51.187> doExecute(): throw
java.lang.RuntimeException: COUNT=4
**I* <2009/12/03 18:30:51.187> end(): COUNT=4,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=4
**I* <2009/12/03 18:31:01.156> ------------
**I* <2009/12/03 18:31:01.156> start(): COUNT=5, EXCEPTION=null
**I* <2009/12/03 18:31:01.156> doExecute(): COUNT=5, EXCEPTION=null
**I* <2009/12/03 18:31:01.187> end(): COUNT=5,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:31:11.171> ------------
**I* <2009/12/03 18:31:11.171> start(): COUNT=6, EXCEPTION=null
**I* <2009/12/03 18:31:11.187> doExecute(): COUNT=6, EXCEPTION=null
**I* <2009/12/03 18:31:11.203> doExecute(): throw
java.lang.RuntimeException: COUNT=6
**I* <2009/12/03 18:31:11.203> end(): COUNT=6,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=6
**I* <2009/12/03 18:31:21.171> ------------
**I* <2009/12/03 18:31:21.171> start(): COUNT=7, EXCEPTION=null
**I* <2009/12/03 18:31:21.187> doExecute(): COUNT=7, EXCEPTION=null
**I* <2009/12/03 18:31:21.203> end(): COUNT=7,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:31:31.171> ------------
**I* <2009/12/03 18:31:31.171> start(): COUNT=8, EXCEPTION=null
**I* <2009/12/03 18:31:31.187> doExecute(): COUNT=8, EXCEPTION=null
**I* <2009/12/03 18:31:31.203> doExecute(): throw
java.lang.RuntimeException: COUNT=8
**I* <2009/12/03 18:31:31.203> end(): COUNT=8,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=8
**I* <2009/12/03 18:31:41.171> ------------
**I* <2009/12/03 18:31:41.171> start(): COUNT=9, EXCEPTION=null
**I* <2009/12/03 18:31:41.203> doExecute(): COUNT=9, EXCEPTION=null
**I* <2009/12/03 18:31:41.203> end(): COUNT=9,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException: COUNT=2
**I* <2009/12/03 18:31:51.171> ------------
**I* <2009/12/03 18:31:51.171> start(): COUNT=10, EXCEPTION=null
**I* <2009/12/03 18:31:51.203> doExecute(): COUNT=10, EXCEPTION=null
**I* <2009/12/03 18:31:51.203> doExecute(): throw
java.lang.RuntimeException: COUNT=10
**I* <2009/12/03 18:31:51.203> end(): COUNT=10,
EXCEPTION=org.seasar.chronos.core.exception.ExecutionRuntimeException:
java.util.concurrent.ExecutionException: java.lang.RuntimeException:
COUNT=10

-----



09/12/03 Junichi Kato <[E-MAIL ADDRESS DELETED]>:
>
> えびな様
> 加藤(j5ik2o)です。
>
> 不具合報告ありがとうございます。
> お手数ですが、不具合が再現するサンプルソースをいただいてもよろしいでしょうか?
>
>
> 2009年12月2日12:52 Yasutaka Ebina <[E-MAIL ADDRESS DELETED]>:
>
> > えびなと申します。
> > s2chronosで下記のような処理を行おうと考えておりますが、
> > 1度Exceptionが発生すると、それ以後ExceptionがDIされ続けてしまいます。
> >
> > タスクを一定周期(例えば1分毎)で起動し、
> > ・Exceptionが起きていなければ、正常終了メールを送信する
> > ・Exceptionが起きていれば、異常終了メールを送信する
> > という処理を行いたいのですが、
> > 1度Exceptionが発生すると、次回以降のタスク実行時に
> > 以前発生したExceptionがDIされてしまします。
> >
> > 具体的には、
> > 1回目実行時: Exceptionなし(正常メール)
> > 2回目実行時: Exceptionあり(異常メール)
> > 3回目実行時: Exceptionなし(異常メール)
> > となってしまいます。
> >
> >
> > startメソッドで初期化を行う処理(exception = null)を書いてみましたが、
> > endメソッドのタイミングで再びExceptionがDIされてしまいます。
> > ※メール送信処理はendメソッドで処理しています。
> > ※メール送信処理のときに、Exceptionの有無を判定しています。
> >
> >
> > 何か良い対応方法があれば、教えていただけますでしょうか。
> > 宜しくお願い致します。
> >
> >
> >
>
> > _______________________________________________
> > Seasar-user mailing list
> > [E-MAIL ADDRESS DELETED]
> > https://ml.seasar.org/mailman/listinfo/seasar-user
> >
> >
>
>
>
> --
> /**
>   * name  : Junichi Kato
>   * email : [E-MAIL ADDRESS DELETED]
>   *
>   * blog  : http://d.hatena.ne.jp/j5ik2o/
>   *
>   * commiting projects :
>   * http://jiemamy.org/
>   * http://s2chronos.sandbox.seasar.org/
>   * http://s2config.sandbox.seasar.org/
>   */
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/seasar-user/attachments/20091204/0ec4a655/attachment.html>


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