Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
2.4.8
-
None
-
None
Description
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:
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)
I believe that keeping a local reference to the URLConnection and then calling getInputStream().close() on it will fix the problem.
For reference this is the Spring Boot issues where the problem was originally reported.