Description
URLConnection opened in line 346 of DefaultFaceletFactory.java is never closed
try { URLConnection conn = facelet.getSource().openConnection(); long lastModified = ResourceLoaderUtils.getResourceLastModified(conn); return lastModified == 0 || lastModified > target; } catch (IOException e) { throw new FaceletException("Error Checking Last Modified for " + facelet.getAlias(), e); }
While this usually isn't an issue in most production environments, because the javax.faces.FACELETS_REFRESH_PERIOD is set either -1 or a high value, this can cause unexpected side effects in both test and hot-deploy production environments.
The result of this issue is that every time the lastModified for a composite component is checked, the composite component file descriptor does stay open - on my test environment we did have 500k open file descriptors for composite component xhtml files.