[MAGNOLIA-6860] ProductionModeClasspathFile might cause IOException when used with Jetty9 Created: 07/Nov/16 Updated: 31/Jan/19 Resolved: 18/Nov/16 |
|
| Status: | Closed |
| Project: | Magnolia |
| Component/s: | None |
| Affects Version/s: | None |
| Fix Version/s: | 5.4.10, 5.5.1 |
| Type: | Bug | Priority: | Neutral |
| Reporter: | Philip Mundt | Assignee: | Aleksandr Pchelintcev |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Attachments: |
|
||||||||||||||||
| Issue Links: |
|
||||||||||||||||
| Template: |
|
||||||||||||||||
| Acceptance criteria: |
Empty
|
||||||||||||||||
| Task DoD: |
[ ]*
Doc/release notes changes? Comment present?
[ ]*
Downstream builds green?
[ ]*
Solution information and context easily available?
[ ]*
Tests
[ ]*
FixVersion filled and not yet released
[ ] 
Architecture Decision Record (ADR)
|
||||||||||||||||
| Bug DoR: |
[ ]*
Steps to reproduce, expected, and actual results filled
[ ]*
Affected version filled
|
||||||||||||||||
| Sprint: | Basel 71 | ||||||||||||||||
| Story Points: | 2 | ||||||||||||||||
| Description |
|
Since the refactoring of info.magnolia.resourceloader.classpath.service.impl.production.ProductionModeClasspathFile (see [INFO] [talledLocalContainer] Caused by: java.io.IOException: Stream closed [INFO] [talledLocalContainer] at java.util.zip.InflaterInputStream.ensureOpen(InflaterInputStream.java:67) [INFO] [talledLocalContainer] at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:142) [INFO] [talledLocalContainer] at java.io.FilterInputStream.read(FilterInputStream.java:133) [INFO] [talledLocalContainer] at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) [INFO] [talledLocalContainer] at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) [INFO] [talledLocalContainer] at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) [INFO] [talledLocalContainer] at java.io.InputStreamReader.read(InputStreamReader.java:184) [INFO] [talledLocalContainer] at java.io.BufferedReader.fill(BufferedReader.java:161) [INFO] [talledLocalContainer] at java.io.BufferedReader.read1(BufferedReader.java:212) [INFO] [talledLocalContainer] at java.io.BufferedReader.read(BufferedReader.java:286) [INFO] [talledLocalContainer] at freemarker.template.Template$LineTableBuilder.read(Template.java:844) [INFO] [talledLocalContainer] at freemarker.core.SimpleCharStream.FillBuff(SimpleCharStream.java:116) [INFO] [talledLocalContainer] at freemarker.core.SimpleCharStream.readChar(SimpleCharStream.java:198) [INFO] [talledLocalContainer] at freemarker.core.SimpleCharStream.BeginToken(SimpleCharStream.java:138) [INFO] [talledLocalContainer] at freemarker.core.FMParserTokenManager.getNextToken(FMParserTokenManager.java:7446) [INFO] [talledLocalContainer] at freemarker.core.FMParser.jj_ntk_f(FMParser.java:6271) [INFO] [talledLocalContainer] at freemarker.core.FMParser.PCData(FMParser.java:3503) [INFO] [talledLocalContainer] at freemarker.core.FMParser.MixedContentElements(FMParser.java:3643) [INFO] [talledLocalContainer] at freemarker.core.FMParser.Root(FMParser.java:4280) [INFO] [talledLocalContainer] at freemarker.template.Template.<init>(Template.java:254) [INFO] [talledLocalContainer] at freemarker.cache.TemplateCache.loadTemplate(TemplateCache.java:548) [INFO] [talledLocalContainer] at freemarker.cache.TemplateCache.getTemplateInternal(TemplateCache.java:438) [INFO] [talledLocalContainer] at freemarker.cache.TemplateCache.getTemplate(TemplateCache.java:291) [INFO] [talledLocalContainer] at freemarker.template.Configuration.getTemplate(Configuration.java:2438) [INFO] [talledLocalContainer] at freemarker.template.Configuration.getTemplate(Configuration.java:2296) [INFO] [talledLocalContainer] at info.magnolia.freemarker.FreemarkerHelper.render(FreemarkerHelper.java:167) [INFO] [talledLocalContainer] at info.magnolia.rendering.renderer.FreemarkerRenderer.onRender(FreemarkerRenderer.java:95) (see full log attached: jetty9-log-statement.log This is due to Jetty 9's default classpath resource caching, see org.eclipse.jetty.util.resource.Resource. Not closing the url connection when acquiring the last modification date solves the problem but is not an appropriate solution. Even though we have explicitly turned off caching in Tomcat 8 too (see |