@Override public void run() { if (files.isEmpty()) { message = Localization.lang("No PDF linked") + ".\n"; } else { int written = 0; int error = 0; for (File file : files) { if (!file.exists()) { if (files.size() == 1) { message = Localization.lang("PDF does not exist"); } error++; } else { try { XMPUtil.writeXMP(file, entry, panel.getDatabase(), Globals.prefs.getXMPPreferences()); if (files.size() == 1) { message = Localization.lang("Wrote XMP-metadata"); } written++; } catch (IOException | TransformerException e) { if (files.size() == 1) { message = Localization.lang("Error while writing") + " '" + file.getPath() + "'"; } error++; } } } if (files.size() > 1) { StringBuilder sb = new StringBuilder(); sb.append( Localization.lang( "Finished writing XMP-metadata. Wrote to %0 file(s).", String.valueOf(written))); if (error > 0) { sb.append(' ') .append(Localization.lang("Error writing to %0 file(s).", String.valueOf(error))); } message = sb.toString(); } } }