19 package org.sleuthkit.autopsy.casemodule;
 
   21 import java.util.logging.Level;
 
   22 import org.openide.util.NbBundle;
 
   34 class SleuthkitErrorReporter 
implements SleuthkitCase.ErrorObserver {
 
   36     private static final Logger LOGGER = Logger.getLogger(SleuthkitErrorReporter.class.getName());
 
   37     private final int milliSecondsBetweenReports;
 
   38     private final String message;
 
   39     private long newProblems;
 
   40     private long totalProblems;
 
   41     private long lastReportedDate;
 
   52     SleuthkitErrorReporter(
int secondsBetweenReports, String message) {
 
   54         this.totalProblems = 0;
 
   55         this.lastReportedDate = 0; 
 
   56         this.milliSecondsBetweenReports = secondsBetweenReports * 1000;  
 
   57         this.message = message;
 
   69     public void receiveError(String context, String errorMessage) {
 
   70         LOGGER.log(Level.SEVERE, String.format(
"%s error in the SleuthKit layer: %s", context, errorMessage));
 
   71         this.newProblems += 1;
 
   72         this.totalProblems += newProblems;
 
   73         long currentTimeStamp = System.currentTimeMillis();
 
   74         if ((currentTimeStamp - lastReportedDate) > milliSecondsBetweenReports) {
 
   75             this.lastReportedDate = currentTimeStamp;
 
   76             MessageNotifyUtil.Notify.error(message, context + 
", " + errorMessage + 
" " 
   77                     + this.newProblems + 
" " 
   78                     + NbBundle.getMessage(SleuthkitErrorReporter.class, 
"IntervalErrorReport.NewIssues")
 
   79                     + 
" " + this.totalProblems + 
" " 
   80                     + NbBundle.getMessage(SleuthkitErrorReporter.class, 
"IntervalErrorReport.TotalIssues")