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

    • Type: Bug
    • Status: Open
    • Priority: Major
    • Resolution: Unresolved
    • Affects Version/s: 1.7, 1.8, 1.6.1, 1.7.1
    • Fix Version/s: None
    • Component/s: 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

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

              Dates

              • Created:
                Updated: