Uploaded image for project: 'Batik'
  1. Batik
  2. BATIK-1143

SAXSVGDocumentFactory.createDocument(String uri) opens an input stream but doesn't close it

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.7, 1.8, 1.6.1, 1.7.1
    • None
    • SVG DOM

    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, ...).

      Attachments

        Activity

          People

            Unassigned Unassigned
            gouessej Julien Gouesse
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: