/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/Task.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/tasks/Task.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2913 by torben, Thu Feb 4 08:54:06 2016 UTC revision 2992 by torben, Tue Mar 29 19:19:11 2016 UTC
# Line 22  public abstract class Task implements Ru Line 22  public abstract class Task implements Ru
22          }          }
23                    
24          protected volatile boolean abort = false;//mark volatile to make sure value isn't cached by threads          protected volatile boolean abort = false;//mark volatile to make sure value isn't cached by threads
25          protected TaskState state = TaskState.STATE_QUEUED;          protected volatile TaskState state = TaskState.STATE_QUEUED;
26          protected TaskManager manager;          protected TaskManager manager;
27          private String errorMsg;          private String errorMsg;
28                    
# Line 37  public abstract class Task implements Ru Line 37  public abstract class Task implements Ru
37          @Override          @Override
38          public final void run() {          public final void run() {
39                                    
40                    if (this.state == TaskState.STATE_ABORTED) {//if this task as cancelled while still in queue  
41                            return;
42                    }
43                    
44                    
45                    
46                  TaskLogger.getInstance().reset();                  TaskLogger.getInstance().reset();
47                                    
48                  TimingHelper timing = new TimingHelper();                  TimingHelper timing = new TimingHelper();
# Line 49  public abstract class Task implements Ru Line 55  public abstract class Task implements Ru
55                                    
56                  try {                  try {
57                          taskRun();                          taskRun();
58                          this.state = TaskState.STATE_DONE;                          
59                            if (this.state != TaskState.STATE_ABORTED) { //just to make sure we wasn't aborted
60                                    this.state = TaskState.STATE_DONE;
61                            }
62                            
63                            
64                  } catch (Exception e) {                  } catch (Exception e) {
65                            logger.warning("Error during taskrun", e);
66                          this.errorMsg = e.getMessage();                          this.errorMsg = e.getMessage();
                         e.printStackTrace();  
67                          this.state = TaskState.STATE_ABORTED;                          this.state = TaskState.STATE_ABORTED;
68                  }                  }
69                                    
# Line 61  public abstract class Task implements Ru Line 72  public abstract class Task implements Ru
72                  logger.info("Done " + this.getDescription() + "   " + timing.getElapsed() + "ms");                  logger.info("Done " + this.getDescription() + "   " + timing.getElapsed() + "ms");
73                                    
74                  logMessages = TaskLogger.getInstance().getBuffer();                  logMessages = TaskLogger.getInstance().getBuffer();
75                    
76                    
77                    // Make some delay between tasks to make sure that the VM settles and other contexts can perform their tasks as well
78                    try {
79                            Thread.sleep(60*1000);
80                    } catch (InterruptedException e) {
81                            e.printStackTrace();
82                    }
83                    
84          }          }
85                    
86          public final String getLog() {          public final String getLog() {
# Line 91  public abstract class Task implements Ru Line 111  public abstract class Task implements Ru
111                  this.abort = true;                  this.abort = true;
112          }          }
113                    
114            public void doAbort(Exception e) {
115                    this.abort = true;
116                    this.errorMsg = e.getMessage();
117            }
118            
119          public TaskBean getTaskBean() {          public TaskBean getTaskBean() {
120                  TaskBean bean = new TaskBean();                  TaskBean bean = new TaskBean();
121                  bean.id = this.getId();                  bean.id = this.getId();
# Line 107  public abstract class Task implements Ru Line 132  public abstract class Task implements Ru
132                  return this.errorMsg;                  return this.errorMsg;
133          }          }
134                    
135            @Override
136            public int hashCode() {
137                    return this.id;
138            }
139            
140            @Override
141            public boolean equals(Object o) {
142                    if (! (o instanceof Task))
143                            return false;
144                    
145                    Task otherTask = (Task) o;
146                    
147                    return this.getId() == otherTask.getId();
148            }
149            
150          /**          /**
151           * @throws Exception           * @throws Exception
152           *           *

Legend:
Removed from v.2913  
changed lines
  Added in v.2992

  ViewVC Help
Powered by ViewVC 1.1.20