Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.7, 1.8, 1.6.1, 1.7.1
-
None
Description
Batik opens an input stream here:
https://github.com/apache/batik/blob/trunk/batik-anim/src/main/java/org/apache/batik/anim/dom/SAXSVGDocumentFactory.java#L158
This opened stream is no longer useful after the creation of the SVGOMDocument instance, it could get closed somewhere, typically here:
https://github.com/apache/batik/blob/trunk/batik-anim/src/main/java/org/apache/batik/anim/dom/SAXSVGDocumentFactory.java#L208
I would use a try-with-resource or at least a try finally block to do so. This is what I do as a temporary workaround, I override this method in my source code and it works.
As far as I know, SAXSVGDocumentFactory.createDocument(String uri) doesn't open streams that don't need to be closed (see ByteArrayInputStream). Leaving such streams open can lead to memory leaks and to run out of native resources (file handles, connections, ...).