Is DocumentBuilderFactory thread-safe in Java 5+?

David Moles picture David Moles · Mar 22, 2012 · Viewed 10.9k times · Source

The Java 1.4 doc for javax.xml.parsers.DocumentBuilderFactory states in no uncertain terms:

An implementation of the DocumentBuilderFactory class is NOT guaranteed to be thread safe. It is up to the user application to make sure about the use of the DocumentBuilderFactory from more than one thread. Alternatively the application can have one instance of the DocumentBuilderFactory per thread. An application can use the same instance of the factory to obtain one or more instances of the DocumentBuilder provided the instance of the factory isn't being used in more than one thread at a time.

The Java 5 and Java 6 docs, however, say nothing of the kind. Is DocumentBuilderFactory thread-safe now, or did Sun just decide the warning was overkill and people should know better?

Answer

bdzzaid picture bdzzaid · Jan 3, 2019

According to the documentation of the singleton DocumentBuilderFactory the newInstance method is not sychronized and then, the DocumentBuilderFactory is still not a thread safe in Java 8... Neither in Java 11. Actually, the constructor didn't change since Java 1.4.