On 7/14/22 4:07 PM, Bernd Eckenfels wrote:
The XMLOutputFactoryImpl does not allow to share the writer instances:

https://github.com/openjdk/jdk/blob/739769c8fc4b496f08a92225a12d07414537b6c0/src/java.xml/share/classes/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java#L167

Sounds like a bug.

So this is initialized and set to false:

https://github.com/openjdk/jdk/blob/739769c8fc4b496f08a92225a12d07414537b6c0/src/java.xml/share/classes/com/sun/xml/internal/stream/XMLOutputFactoryImpl.java#L62

However when you query the property from the PropertyManager it’s default seems to be true:

https://github.com/openjdk/jdk/blob/739769c8fc4b496f08a92225a12d07414537b6c0/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/PropertyManager.java#L154

Should this be aligned to Boolean.FALSE? Or maybe complete remove the shared instance code?

Agree, needs to be aligned.

I also wonder is it expected to instantiate the Impl directly: there is no programmatic api way to request the default impl unless you define global config or system property (and this also required the impl class name so you can as well create a instance reflectively).

To get the default impl directly, use XMLOutputFactory::newDefaultFactory().

Best,
Joe


Gruss
Bernd
--
http://bernd.eckenfels.net

Reply via email to