public StreamedContent getSufdDocumentForFunding(Funding funding, Treasury exporter) { List<PaymentOrder> paymentOrders = paymentOrderRepository.findByFunding(funding); LegalPerson payer = paymentOrders .stream() .map(PaymentOrder::getPayer) .filter(p -> p != null) .findAny() .orElseThrow(() -> new PayerNotFoundException()); String sufdDocument = exporter.generateSufdDocument(paymentOrders, payer); Charset charset = Charset.forName("windows-1251"); ByteArrayInputStream bis = new ByteArrayInputStream(sufdDocument.getBytes(charset)); dialog.dispose(); return new DefaultStreamedContent( bis, "text/plain", funding.getSufdFileName(), charset.displayName()); }