/[projects]/dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressTask.java
ViewVC logotype

Diff of /dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressTask.java

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

dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/AddressTask.java revision 2838 by torben, Sun Jan 24 21:48:55 2016 UTC dao/DaoAdresseVedligehold/src/main/java/dk/daoas/adressevedligehold/fileupload/AddressTask.java revision 3013 by torben, Wed Apr 20 14:15:02 2016 UTC
# Line 1  Line 1 
1  package dk.daoas.adressevedligehold;  package dk.daoas.adressevedligehold.fileupload;
2    
3    import org.apache.commons.lang3.exception.ExceptionUtils;
4    
5    import dk.daoas.adressevedligehold.MailSender;
6    import dk.daoas.adressevedligehold.ReloadTask;
7    import dk.daoas.adressevedligehold.afstandandenrute.AfstandAndenRuteTask;
8  import dk.daoas.adressevedligehold.tasks.Task;  import dk.daoas.adressevedligehold.tasks.Task;
9    import dk.daoas.adressevedligehold.tasks.TaskLogger;
10  import dk.daoas.adressevedligehold.util.TimingHelper;  import dk.daoas.adressevedligehold.util.TimingHelper;
11    
12    /*
13     *  
14     */
15    
16  public class AddressTask extends Task {  public class AddressTask extends Task {
17                    
18            private TaskLogger logger = TaskLogger.getInstance();
19            
20            private String distributor;
21            private String filename;
22            
23          AddressSource source;          AddressSource source;
24          boolean writeBack;          boolean writeBack;
25                    
# Line 12  public class AddressTask extends Task { Line 27  public class AddressTask extends Task {
27                                    
28                  this.source = source;                  this.source = source;
29                  this.writeBack = writeBack;                  this.writeBack = writeBack;
30                    
31                    this.distributor = source.getDistributor();
32                    this.filename = source.getFilename();
33          }          }
34            
35            
36    
37          @Override          @Override
38          protected void taskRun() {          protected void taskRun() throws Exception {
39                                    
40                  try {                  try {
41                          TimingHelper timer = new TimingHelper();                          TimingHelper timer = new TimingHelper();
42                          System.out.println("Reading data from DB");                          
43                            logger.info("Validating Source");
44                            source.validate();
45                            
46                            logger.info("Reading data from DB");
47                          AddressManager addrManager = new AddressManager();                          AddressManager addrManager = new AddressManager();
48                                                    
49                          System.out.println("Data is ready");                          logger.info("Data is ready");
50                                                    
51                          EntryUgedage ugedage = new EntryUgedage(); //saml op på hvilke ugedage der er blevet behandlet                          EntryUgedage ugedage = new EntryUgedage(); //saml op på hvilke ugedage der er blevet behandlet
52                                                    
# Line 31  public class AddressTask extends Task { Line 55  public class AddressTask extends Task {
55                                                    
56                          AddressSourceEntry entry;                          AddressSourceEntry entry;
57                          while ( (entry = source.getNextEntry()) != null) {                          while ( (entry = source.getNextEntry()) != null) {
58                                  if (super.abort) {                                  if (isAborted()) {
59                                          break;                                          break;
60                                  }                                  }
61                                                                    
# Line 50  public class AddressTask extends Task { Line 74  public class AddressTask extends Task {
74                                  addrManager.dumpChanged();                                        addrManager.dumpChanged();      
75                          }                          }
76                                                    
77                          AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack);                          AddressReport report = new AddressReport(addrManager, entryCount, ugedage, source, timer, writeBack, addrManager.getDuplicateCount() );
78                          report.sendRapport();                          report.sendRapport();
79                                                    
80                                                    
81                            if (writeBack) {
82                                    manager.submitTask( new ReloadTask("Indlaesning/" + source.getDistributor()) );
83                                    
84                                    
85                                    if (source.calculateDistances()) {
86                                            Task tsk = new AfstandAndenRuteTask(source.getDistributor(), AfstandAndenRuteTask.INCREMENTAL);
87                                            manager.submitTask( tsk );
88                                    }                              
89                            }
90                                                    
91                  } catch (Exception e) {  
92                          e.printStackTrace();                          
93                  }                  } catch(Exception e) {
94                                            
95                                            String subject = "Error loading data for " + source.getDistributor();
96                  try {                          String body = "File: " + source.getFilename();
97                          System.out.println("Cleaning up resources");                          body += "<br><br>";
98                          source.close();                          body += "Exception:<br>";
99                  } catch (Exception e) {                          body += ExceptionUtils.getStackTrace(e);
100                          System.out.println("Error during cleanup: " + e.getMessage() );                          MailSender.sendMail(subject, body);
101                            
102                            throw e; //rethrow exception
103                    } finally  {
104                            
105                            try {
106                                    logger.info("Cleaning up resources");
107                                    source.close();
108                                    source = null; //and release it for garbace collection
109                            } catch (Exception e) {
110                                    logger.warning("Error during cleanup: ", e );
111                            }                      
112                  }                  }
113    
114          }          }
115    
116          @Override          @Override
117          public String getDescription() {          public String getDescription() {
118                  return "AddressTask " + source.getDistributor();                  return "AddressTask " + distributor;
119          }          }
120    
121          @Override          @Override
122          public short getPercentCompleted() {          public double getPercentCompleted() {
123                  return 0;                  return -1;
124          }          }
125    
126          @Override          @Override
127          public String getDetail() {          public String getDetail() {
128                  return source.getFilename();                  return filename;
129          }          }
130    
131  }  }

Legend:
Removed from v.2838  
changed lines
  Added in v.3013

  ViewVC Help
Powered by ViewVC 1.1.20