1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.xnap.util;
21
22 import java.util.TimerTask;
23
24 import org.apache.log4j.Logger;
25
26 /***
27 * Provides a task that captures exceptions.
28 */
29 public abstract class XNapTask {
30
31
32
33 private static Logger logger = Logger.getLogger(XNapTask.class);
34
35 ProxyTask task = new ProxyTask();
36
37
38
39 public void cancel()
40 {
41 task.cancel();
42 }
43
44 TimerTask getTimerTask()
45 {
46 return task;
47 }
48
49 public abstract void run();
50
51 public long scheduledExecutionTime()
52 {
53 return task.scheduledExecutionTime();
54 }
55
56 /***
57 *
58 */
59 private class ProxyTask extends TimerTask {
60
61 public ProxyTask()
62 {
63 }
64
65 public void run()
66 {
67 try {
68 XNapTask.this.run();
69 }
70 catch (Throwable e) {
71 UncaughtExceptionManager.getInstance().notify(e);
72 }
73 }
74
75 }
76
77 }
78
79
80
81
82