groovy-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "John Wagenleitner (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (GROOVY-8056) GroovyCodeSource(URL) can leak a file handler
Date Sat, 03 Jun 2017 15:53:04 GMT

     [ https://issues.apache.org/jira/browse/GROOVY-8056?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

John Wagenleitner resolved GROOVY-8056.
---------------------------------------
       Resolution: Fixed
         Assignee: John Wagenleitner
    Fix Version/s: 2.4.12

Thanks for reporting the issue.

> GroovyCodeSource(URL) can leak a file handler
> ---------------------------------------------
>
>                 Key: GROOVY-8056
>                 URL: https://issues.apache.org/jira/browse/GROOVY-8056
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 2.4.8
>            Reporter: Andy Wilkinson
>            Assignee: John Wagenleitner
>             Fix For: 2.4.12
>
>
> When {{GroovyCodeSource}} is created from a {{URL}} it calls {{url.openConnection.getContentEncoding()}}.
When it's a {{file:}} URL, this causes a {{FileInputStream}} to be opened and never closed.
The stack trace for it being opened is:
> {noformat}
> at java.io.FileInputStream.<init>(Unknown Source)
> 	at java.io.FileInputStream.<init>(Unknown Source)
> 	at sun.net.www.protocol.file.FileURLConnection.connect(Unknown Source)
> 	at sun.net.www.protocol.file.FileURLConnection.initializeHeaders(Unknown Source)
> 	at sun.net.www.protocol.file.FileURLConnection.getHeaderField(Unknown Source)
> 	at java.net.URLConnection.getContentEncoding(Unknown Source)
> 	at groovy.lang.GroovyCodeSource.<init>(GroovyCodeSource.java:176)
> 	at groovy.text.markup.MarkupTemplateEngine$MarkupTemplateMaker.<init>(MarkupTemplateEngine.java:222)
> 	at groovy.text.markup.MarkupTemplateEngine.createTemplateByPath(MarkupTemplateEngine.java:145)
> {noformat}
> I believe that keeping a local reference to the {{URLConnection}} and then calling {{getInputStream().close()}}
on it will fix the problem.
> For reference [this|https://github.com/spring-projects/spring-boot/issues/7892] is the
Spring Boot issues where the problem was originally reported.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Mime
View raw message