[
https://issues.apache.org/jira/browse/WICKET-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13234190#comment-13234190
]
bernard commented on WICKET-4458:
---------------------------------
I understand. No problem. Actually I was the one who noticed that the link to
the tool was broken - now it is back.
- Shutdown GlassFish
- start GlassFish in debug mode
- open the maven project in NetBeans
- run the tool:
java -classpath
C:\zip\zip1\java\util\ZipFileMonitor.jar;"%JAVA_HOME%/lib/tools.jar"
util.ZipFileMonitor -host 127.0.0.1 -port 9009 -filter wicket
- deploy/run the project
- undeploy the project
- execute the show command in the utility console
show
Current list of opened but unclosed jar files matching the filter:
Path
"C:\bt\java\servlet\Wicket\issues\_current\GlassFishJarNotReleased\myproject\target\myproject-1.0-SNAPSHOT\WEB-INF\lib\wiore-1.5.5.jar"
..Opened by hashCode object 1989 from:
java.util.jar.JarFile.<init>(java\util\jar\JarFile.java:137)
java.util.jar.JarFile.<init>(java\util\jar\JarFile.java:72)
sun.net.www.protocol.jar.URLJarFile.<init>(sun\net\www\protocol\jar\URLJarFile.java:72)
sun.net.www.protocol.jar.URLJarFile.getJarFile(sun\net\www\protocol\jar\URLJarFile.java:48)
sun.net.www.protocol.jar.JarFileFactory.get(sun\net\www\protocol\jar\JarFileFactory.java:65)
sun.net.www.protocol.jar.JarURLConnection.connect(sun\net\www\protocol\jar\JarURLConnection.java:104)
sun.net.www.protocol.jar.JarURLConnection.getInputStream(sun\net\www\protocol\jar\JarURLConnection.java:132)
java.net.URL.openStream(java\net\URL.java:1010)
org.apache.wicket.Application.initializeComponents(org\apache\wicket\Application.java:499)
org.apache.wicket.Application.initApplication(org\apache\wicket\Application.java:808)
org.apache.wicket.protocol.http.WicketFilter.init(org\apache\wicket\protocol\http\WicketFilter.java:374)
org.apache.wicket.protocol.http.WicketFilter.init(org\apache\wicket\protocol\http\WicketFilter.java:309)
org.apache.catalina.core.ApplicationFilterConfig.getFilter(org\apache\catalina\core\ApplicationFilterConfig.java:264)
org.apache.catalina.core.ApplicationFilterConfig.<init>(org\apache\catalina\core\ApplicationFilterConfig.java:120)
org.apache.catalina.core.StandardContext.filterStart(org\apache\catalina\core\StandardContext.java:4685)
org.apache.catalina.core.StandardContext.start(org\apache\catalina\core\StandardContext.java:5377)
com.sun.enterprise.web.WebModule.start(com\sun\enterprise\web\WebModule.java:498)
org.apache.catalina.core.ContainerBase.addChildInternal(org\apache\catalina\core\ContainerBase.java:917)
org.apache.catalina.core.ContainerBase.addChild(org\apache\catalina\core\ContainerBase.java:901)
org.apache.catalina.core.StandardHost.addChild(org\apache\catalina\core\StandardHost.java:733)
com.sun.enterprise.web.WebContainer.loadWebModule(com\sun\enterprise\web\WebContainer.java:2018)
com.sun.enterprise.web.WebContainer.loadWebModule(com\sun\enterprise\web\WebContainer.java:1669)
com.sun.enterprise.web.WebApplication.start(com\sun\enterprise\web\WebApplication.java:109)
org.glassfish.internal.data.EngineRef.start(org\glassfish\internal\data\EngineRef.java:130)
org.glassfish.internal.data.ModuleInfo.start(org\glassfish\internal\data\ModuleInfo.java:269)
org.glassfish.internal.data.ApplicationInfo.start(org\glassfish\internal\data\ApplicationInfo.java:301)
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(com\sun\enterprise\v3\server\ApplicationLifecycle.java:461)
com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(com\sun\enterprise\v3\server\ApplicationLifecycle.java:240)
org.glassfish.deployment.admin.DeployCommand.execute(org\glassfish\deployment\admin\DeployCommand.java:389)
com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:348)
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:363)
com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:1085)
com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:95)
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:
com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(com\sun\enterprise\v3\admin\CommandRunnerImpl.java:
com.sun.enterprise.v3.admin.AdminAdapter.doCommand(com\sun\enterprise\v3\admin\AdminAdapter.java:461)
com.sun.enterprise.v3.admin.AdminAdapter.service(com\sun\enterprise\v3\admin\AdminAdapter.java:212)
com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(com\sun\grizzly\tcp\http11\GrizzlyAdapter.java:179)
com.sun.enterprise.v3.server.HK2Dispatcher.dispath(com\sun\enterprise\v3\server\HK2Dispatcher.java:117)
com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(com\sun\enterprise\v3\services\impl\Container.java:354)
com.sun.enterprise.v3.services.impl.ContainerMapper.service(com\sun\enterprise\v3\services\impl\ContainerMapper.java:195)
com.sun.grizzly.http.ProcessorTask.invokeAdapter(com\sun\grizzly\http\ProcessorTask.java:849)
com.sun.grizzly.http.ProcessorTask.doProcess(com\sun\grizzly\http\ProcessorTask.java:746)
com.sun.grizzly.http.ProcessorTask.process(com\sun\grizzly\http\ProcessorTask.java:1045)
com.sun.grizzly.http.DefaultProtocolFilter.execute(com\sun\grizzly\http\DefaultProtocolFilter.java:228)
com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(com\sun\grizzly\DefaultProtocolChain.java:137)
com.sun.grizzly.DefaultProtocolChain.execute(com\sun\grizzly\DefaultProtocolChain.java:104)
com.sun.grizzly.DefaultProtocolChain.execute(com\sun\grizzly\DefaultProtocolChain.java:90)
com.sun.grizzly.http.HttpProtocolChain.execute(com\sun\grizzly\http\HttpProtocolChain.java:79)
com.sun.grizzly.ProtocolChainContextTask.doCall(com\sun\grizzly\ProtocolChainContextTask.java:54)
com.sun.grizzly.SelectionKeyContextTask.call(com\sun\grizzly\SelectionKeyContextTask.java:59)
com.sun.grizzly.ContextTask.run(com\sun\grizzly\ContextTask.java:71)
com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(com\sun\grizzly\util\AbstractThreadPool.java:532)
com.sun.grizzly.util.AbstractThreadPool$Worker.run(com\sun\grizzly\util\AbstractThreadPool.java:513)
java.lang.Thread.run(java\lang\Thread.java:662)
This tool appears to be quite useful :)
> 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