Является ли XMLInputFactory потокобезопасным?

При профилировании своего приложения я заметил, что создание экземпляров XMLInputFactory снова и снова обходится очень дорого. Безопасно ли совместно использовать его экземпляры в нескольких потоках?

В javadoc ничего не говорится о его потокобезопасности, а поиск в Интернете не дает определенного ответа!


person Chandra Sekar    schedule 07.02.2014    source источник
comment
Да, это потокобезопасно.   -  person jakub.petr    schedule 07.02.2014
comment
@jakub.petr Можете ли вы указать мне какую-нибудь документацию или ресурс, в котором это обсуждается?   -  person Chandra Sekar    schedule 07.02.2014
comment
возможно, это не issues.apache.org/jira/browse/AXIOM-74   -  person Leo    schedule 07.02.2014
comment
Я заглянул в исходники OpenJDK, и нужно синхронизировать только конфигурацию. Но я должен сказать, что это может зависеть от реализации. XMLInputFactory сама по себе абстрактна!   -  person jakub.petr    schedule 07.02.2014
comment
истинный. @Chandru, какой JDK ты используешь?   -  person Leo    schedule 07.02.2014
comment
не уверен насчет jdk7, но проверьте это svn.codehaus.org/woodstox /wstx/trunk/release-notes/USAGE — вроде бы для woodstox   -  person Leo    schedule 07.02.2014
comment
@Leo Похоже, я добавил свой ответ одновременно с вашим комментарием. Предоставьте это как ответ, и я приму его.   -  person Chandra Sekar    schedule 08.02.2014


Ответы (1)


Я решил использовать Woodstox в качестве реализации StAX. Это намного быстрее, чем реализация JDK по умолчанию, и в явно упоминается безопасность потоков.

Фабрики Woodstox являются потокобезопасными после этапа настройки (вызов setProperty()), но не во время него. Самое главное, что после завершения всех настроек вызов методов createXMLxxx полностью потокобезопасен.

person Chandra Sekar    schedule 07.02.2014