I am writing this to document a resolution to a problem I have found while running HiveMind within a servlet container on Windows and the way that HiveMind searches for xml files within jars on the classpath (hivemodule.xml, etc)
This is specific to windows, and its file locking behaviour. Environment: Windows XP SP2, JDK 1.5.0_05, HiveMind 1.1.1, Tomcat 5.5.12 Problem: When undeploying a webapp that uses HiveMind, the Hivemind-1.1.1.jar, Hivemind-lib-1.1.1.jar (and any other jars that contain Hivemind module descriptors) within the webapp are locked and cannot be deleted. This results in a failure to undeploy the webapp. If the servlet container (Tomcat) is shut down, the lock is released and the jars can be deleted. XMLResourceProcessor involvement: This class appears to be involved in searching for module descriptors on the classpath using a url. However it does not set caching to false before doing the url.openStream() call. This means that all the jars that it opens get locked by windows. Root cause: Jar access using a URL with caching enabled. See: [url]http://forum.springframework.org/archive/index.php/t-19516.html[/url] [url]http://tomcat.apache.org/faq/windows.html#lock[/url] Resolution: Make sure the following code is ran before instantiating HiveMind (can use ServletContextListener for example): [code] try { if(System.getProperty("os.name").contains("Windows")) new URL("http://This-is-just-to-get-the-URLConnection").openConnection().setDefaultUseCaches(false); } catch (IOException e) { e.printStackTrace(); } [/code] This is a vm-wide setting so it will affect all url connections. Why isn't this code cleaner? See: [url]http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4851466[/url] [url]http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4405789[/url] I hope this helps anyone else in the same situation! Maybe the code could also be in HiveMind itself? I'll leave that to the dev team. There are three files in total that contain this type of code: XMLResourceProcessor.java, MessageFinderImpl.java, and URLResource.java Jim -- View this message in context: http://www.nabble.com/HiveMind-1.1.1---jar-locking---XMLResourceProcessor-tf2735127.html#a7630408 Sent from the Hivemind - User mailing list archive at Nabble.com.