in usage-statistics-impl/src/jetbrains/buildServer/controllers/DownloadUsageStatisticsController.java [42:75]
protected ModelAndView doHandle(@NotNull final HttpServletRequest request, @NotNull final HttpServletResponse response) throws Exception {
if (!myStatisticsCollector.isStatisticsCollected()) {
//noinspection ThrowableResultOfMethodCallIgnored
final String cause = UsageStatisticsCollectorImpl.createIllegalStateException().getLocalizedMessage().toLowerCase();
WebUtil.notFound(request, response, "Failed to download usage statistics: " + cause, LOG);
return null;
}
final Date collectingFinishDate = myStatisticsCollector.getLastCollectingFinishDate();
final String fileName = String.format("tc-usage-statistics-%s.properties", FILE_NAME_DATE_FORMAT.format(collectingFinishDate));
OutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType("text/plain");
WebUtil.setContentDisposition(request, response, fileName, false);
WebUtil.addCacheHeadersForIE(request, response);
writeStatistics(out, collectingFinishDate);
}
catch (final Exception e) {
LOG.error("Failed to download usage statistics", e);
response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, "Failed to download usage statistics");
}
finally {
if (out != null) {
out.flush();
out.close();
}
}
return null;
}