protected long generateReport() { long now = System.currentTimeMillis(); String date = LocalDate.now(report.tzName).toString(); Path userCsvFolder = FileUtils.getUserReportDir( key.user.email, key.user.appName, key.reportId, date); try { Profile profile = key.user.profile; DashBoard dash = profile.getDashByIdOrThrow(key.dashId); report.lastRunResult = generateReport(userCsvFolder, profile, dash, now); } catch (IllegalCommandException illegalState) { report.lastRunResult = ReportResult.ERROR; log.debug("Dashboard is not exists anymore for the report {} for user {}. ", report.id, key.user.email); } catch (Exception e) { report.lastRunResult = ReportResult.ERROR; log.error("Error generating report {} for user {}. ", report.id, key.user.email); log.error("Error: ", e); } long newNow = System.currentTimeMillis(); log.info("Processed report for {}, time {} ms.", key.user.email, newNow - now); return newNow; }