Я полностью сбит с толку этим.Я запускаю полный пакет комплексных тестов.Вот соответствующий общий код, который используется рядом тестов JUnit:
private static Map<String, JAXBContext> jaxbContexts =
new HashMap<String, JAXBContext>();
private synchronized JAXBContext getJAXBContext(Class clazz) throws JAXBException {
JAXBContext context = null;
if (jaxbContexts.containsKey(clazz.getName())) {
context = jaxbContexts.get(clazz.getName());
} else {
context = JAXBContext.newInstance(clazz);
System.out.println("Created new context for '" + clazz.getName() + "'");
jaxbContexts.put(clazz.getName(), context);
}
return context;
}
Вывод консоли из запуска JUnit включает следующие две последовательные записи:
Created new context for 'com.somecompany.xmlschema.providepensionpaymentinfo.Interface'
Created new context for 'com.somecompany.xmlschema.providepensionpaymentinfo.Interface'
Что яотсутствует?Почему jaxbContexts.containsKey()
не работал в этом случае для ключа на основе строки, в отличие от 46 других случаев во время выполнения JUnit?Мы не проводим наши тесты параллельно, но мы используем Аспекты, если это имеет значение.