[ https://issues.apache.org/jira/browse/WICKET-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13242407#comment-13242407 ]
Martin Grigorov commented on WICKET-4458: ----------------------------------------- Hi Tim, Can you refer to some documentation that specifies this behavior ? I don't see anything specific in JarUrlConnection. In UrlConnection there is: * Invoking the <tt>close()</tt> methods on the <tt>InputStream</tt> or <tt>OutputStream</tt> of an * <tt>URLConnection</tt> after a request may free network resources associated with this * instance, unless particular protocol specifications specify different behaviours * for it. which opens the door for the impls to do nothing as you said... But lsof also doesn't show open file descriptor to the .jar here ... > wicket-core-1.5.5.jar not closed when Application is undeployed from directory > ------------------------------------------------------------------------------ > > Key: WICKET-4458 > URL: https://issues.apache.org/jira/browse/WICKET-4458 > Project: Wicket > Issue Type: Bug > Components: wicket > Affects Versions: 1.5.5 > Environment: java version "1.6.0_30" > Java(TM) SE Runtime Environment (build 1.6.0_30-b12) > Java HotSpot(TM) Client VM (build 20.5-b03, mixed mode, sharing) > Reporter: bernard > > How to reproduce: > - Create a 1.5.5 quickstart > - deploy it on the GlassFish server with directory deployment (I use NetBeans > which is easy) > - open the application in the browser > - undeploy the application > - try to execute the maven clean goal or try to delete the target dir > Error in GlassFish log: > Unable to delete file WEB-INF\lib\wicket-core-1.5.5.jar > I first thought that this was a GlassFish issue such as: > http://java.net/jira/browse/GLASSFISH-17339 > To eliminate that, I added glassfish\modules\war-util.jar to the project and > wrote code to let GlassFish close all jar files: > In the Application class: > @Override > public void onDestroy() { > super.onDestroy(); > ClassLoader parentClassLoader = this.getClass().getClassLoader(); > ClassLoader classLoader; > do{ > classLoader = parentClassLoader; > if(classLoader instanceof WebappClassLoader){ > WebappClassLoader glassFishLoader = > (WebappClassLoader)classLoader; > glassFishLoader.closeJARs(true); > break; > } > parentClassLoader = classLoader.getParent(); > }while(parentClassLoader != classLoader && parentClassLoader != null); > > } > > but this did not fix the problem. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira