Параллельные потоки не работают так, как ожидалось

1
8

Проблема с параллельным потоком

При запуске метода он никогда не печатал ни одной строки.

private void generateXmlAndImages() {
        List<XmlData> collect = xmlDataMap.keySet().stream()
                .parallel()
                .map(xmlId -> xmlDataMap.get(xmlId))
                .map(data -> buildIt(data))
                .collect(Collectors.toList());
        log.info("1:collect.size() = " + collect.size());
        log.info("2:input map.size() = " + xmlDataMap.values().size());
    }

private XmlData buildIt(XmlData xmlData) {
        log.info("generatingXmlAndImages: xmlId=" + xmlData.getId());
        try {
            if (!xmlData.isValid()) {
                return null;
            }
            Map<String, String> imagesPaths = generateSignatureAndLogoImages(xmlData);
            XML xml = XmlGenerator.generateXML(imagesPaths, xmlData);
            xmlData.setXml(xml);
            xmlData.setValid(true);
            log.info("generatedXmlAndImages: xmlId=" + xmlData.getId());
        } catch (Exception e) {
            String errorMessage = "Unable to generate Images or XML for xml Id:" + xmlData.getId();
            log.error("FAILED" + errorMessage, e);
            xmlData.setValid(false);
            xmlData.addError(e.toString());
        }
        return xmlData;
    }
Болеслав
Вопрос задан6 мая 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.