-
Notifications
You must be signed in to change notification settings - Fork 6.1k
Description
Describe the bug
The following method in SpringSecurityCoreVersion.java does not close the stream it opens. This keeps the file locked on Windows:
private static String getSpringVersion() {
Properties properties = new Properties();
try {
properties.load(SpringSecurityCoreVersion.class.getClassLoader()
.getResourceAsStream("META-INF/spring-security.versions"));
}
catch (IOException | NullPointerException ex) {
return null;
}
return properties.getProperty("org.springframework:spring-core");
}
This causes a problem when using WebSphere Liberty. When customer tries to update the application, spring-security-core-5.2.1.RELEASE.jar is locked.
I traced opens and closes of ZipFiles. The stack trace below is for the open that was never closed :
[err] open
of ZipFile D:\WebSphere\Liberty\usr\servers\server1\workarea\org.eclipse.osgi\59\data\cache\com.ibm.ws.app.manager_67.cache\WEB-INF\lib\ spring-security-core-5.2.1.RELEASE.jar : -1020332453
[err] java.util.zip.ZipFile.dumpstack(ZipFile.java:160)
[err] java.util.zip.ZipFile.dumpstack(ZipFile.java:160)
[err] java.util.zip.ZipFile.(ZipFile.java:295)
[err] java.util.zip.ZipFile.(ZipFile.java:224)
[err] java.util.zip.ZipFile.(ZipFile.java:238)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileUtils$1.run(ZipFileUtils.java:39)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileUtils$1.run(ZipFileUtils.java:36)
[err] java.security.AccessController.doPrivileged(AccessController.java:696)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileUtils.openZipFile(ZipFileUtils.java:36)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileUtils.openZipFile(ZipFileUtils.java:28)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileData.openZipFile(ZipFileData.java:728)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileData.openZipFile(ZipFileData.java:689)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileReaper.open(ZipFileReaper.java:1579)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileReaper.open(ZipFileReaper.java:1526)
[err] com.ibm.ws.artifact.zip.cache.internal.ZipFileHandleImpl.open(ZipFileHandleImpl.java:164)
[err] com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLConnectionImpl.getInputStreamInternal(WSJarURLStreamHandler.java:262)
[err] com.ibm.ws.artifact.url.internal.WSJarURLStreamHandler$WSJarURLConnectionImpl.getInputStream(WSJarURLStreamHandler.java:249)
[err] java.net.URL.openStream(URL.java:1057)
[err] java.lang.ClassLoader.getResourceAsStream(ClassLoader.java:699)
[err] org.springframework.security.core.SpringSecurityCoreVersion.getSpringVersion(SpringSecurityCoreVersion.java:112)
[err] org.springframework.security.core.SpringSecurityCoreVersion.(SpringSecurityCoreVersion.java:46)
[err] org.springframework.security.config.SecurityNamespaceHandler.(SecurityNamespaceHandler.java:68)
[err] sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[err] sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:83)
[err] sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:57)
[err] java.lang.reflect.Constructor.newInstance(Constructor.java:437)
[err] org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:200)
[err] org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:135)
[err] org.springframework.beans.factory.xml.DefaultNamespaceHandlerResolver.resolve(DefaultNamespaceHandlerResolver.java:134)
[err] org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1386)
[err] org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1371)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:179)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:96)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:514)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:394)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:337)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:305)
[err] org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
[err] org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.importBeanDefinitionResource(DefaultBeanDefinitionDocumentReader.java:234)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseDefaultElement(DefaultBeanDefinitionDocumentReader.java:191)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:176)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:149)
[err] org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:96)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:514)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:394)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:337)
[err] org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:305)
[err] org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
[err] org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:224)
[err] org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:195)
[err] org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
[err] org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
[err] org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:133)
[err] org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:637)
[err] org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:522)
[err] org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:401)
[err] org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:292)
[err] org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
[err] com.ibm.ws.webcontainer.webapp.WebApp.notifyServletContextCreated(WebApp.java:2433)
[err] com.ibm.ws.webcontainer31.osgi.webapp.WebApp31.notifyServletContextCreated(WebApp31.java:514)
[err] com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:1037)
[err] com.ibm.ws.webcontainer.webapp.WebApp.initialize(WebApp.java:6663)
[err] com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApp(DynamicVirtualHost.java:467)
[err] com.ibm.ws.webcontainer.osgi.DynamicVirtualHost.startWebApplication(DynamicVirtualHost.java:462)
[err] com.ibm.ws.webcontainer.osgi.WebContainer.startWebApplication(WebContainer.java:1175)
[err] com.ibm.ws.webcontainer.osgi.WebContainer.access$100(WebContainer.java:109)
[err] com.ibm.ws.webcontainer.osgi.WebContainer$3.run(WebContainer.java:975)
[err] com.ibm.ws.threading.internal.ExecutorServiceImpl$RunnableWrapper.run(ExecutorServiceImpl.java:239)
[err] java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:522)
[err] java.util.concurrent.FutureTask.run(FutureTask.java:277)
[err] java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1160)
[err] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
[err] java.lang.Thread.run(Thread.java:811)