Приведенный ниже код вызывает единичные сбои теста (JUnit), работает 80% времени.Я использую статический объект Templates.В случае сбоя объект JAXB, отличный от ожидаемого, помещается в «результат» из вызова метода transformer.transform (jaxbSource, result).
Я пробовал блокировать и синхронизировать разделы напрасно.Также объект Templates предполагается потокобезопасным в соответствии со спецификацией.Что-то странное происходит в трансформации.
Симптом ошибки: ошибка теста JUnit - внезапно неверный объект возвращается из преобразования.
Есть идеи?
private <S, T> S transform(final Templates template, final Class resultClass, final T data) throws JAXBException, TransformerException {
Transformer transformer = template.newTransformer();
final JAXBSource jaxbSource = new JAXBSource(getCachedJAXBContext(data.getClass()), data);
final Result result = new JAXBResult(getCachedJAXBContext(resultClass));
transformer.transform(jaxbSource, result);
return (S) ((JAXBResult) result).getResult();
}