Fixed (Possibly a Windows only issue) ClassLoader jar file locking issues which
were caused by several factors.
1. ClassLoaderUtil was using wrong key to remove and close cached jar files, so added a first (most common) and
fall-back strategy to create a valid removal key. Also added private method to close jar file loaders.
2. DeploymentLoader was not actually using the temp files it created to create
the lookup ClassLoader.
3. DeploymentLoader was trying to delete temp jar files before jar file
references had been removed.
The order of action is:
Create temporary ClassLoader.
Destroy temporary ClassLoader.
System.gc() - required to ensure release.
Delete temporary files.
Create application ClassLoader.
Deploy application.
Undeploy application.
Destroy application ClassLoader.
System.gc() - required to ensure release.
All files are now unlocked (and can be deleted) as expected. Previously it was necessary to restart OpenEJB to redeploy
an [application].jar with the same name.
Andy.
PS. Revision: 1041646 breaks due to missing library?