void () { if (myFailures.isEmpty()) { return; } if(reportFailuresWithDialog) { String dialogMessage; if (myFailures.size() == 1) { dialogMessage = LangBundle.message("dialog.message.failed.to.decode.file", myFailures.get(0).getFirst()); } else { StringBuilder dialogMessageBuilder = new StringBuilder(); dialogMessageBuilder.append(LangBundle.message("dialog.message.failed.to.decode.files")).append('\n'); for (Trinity<String, String, VelocityException> failure : myFailures) { dialogMessageBuilder.append(failure.getFirst()).append("\n"); } dialogMessage = dialogMessageBuilder.toString(); //NON-NLS } Messages.showErrorDialog(dialogMessage, LangBundle.message("dialog.title.decoding.template")); } @NonNls StringBuilder reportBuilder = new StringBuilder(); for (Trinity<String, String, VelocityException> failure : myFailures) { reportBuilder.append("File: ").append(failure.getFirst()).append("\n"); reportBuilder.append("Exception:\n").append(ExceptionUtil.getThrowableText(failure.getThird())).append("\n"); reportBuilder.append("File content:\n'").append(failure.getSecond()).append("'\n"); reportBuilder.append("\n===========================================\n"); } LOG.error("Cannot decode files in template", (Throwable)null, new Attachment("Files in template", reportBuilder.toString())); }