good catch: https://issues.apache.org/jira/browse/TOMEE-1069 Romain Manni-Bucau Twitter: @rmannibucau Blog: http://rmannibucau.wordpress.com/ LinkedIn: http://fr.linkedin.com/in/rmannibucau Github: https://github.com/rmannibucau
2013/10/31 Trevor Stevens <[email protected]>: > When TomEE is shutting down with deployed resource adapters by calling > javax.resource.spi.ResourceAdapter.stop() if the code attempts to load a > class an exception is generated. I am assuming the issue here is that TomEE > is stopping the classloader before closing the resource adapters. > > To reproduce this I used hazelcast 3.1 on a TomEE+ 1.6.0-SNAPSHOT from ~Oct29 > Update tomee.xml to enable deployments > Place hazelcast-3.1.jar in lib > Place hazelcast-ra-3.1.rar in apps > > I get the following when shutting down: > > Oct 31, 2013 11:40:45 AM org.apache.openejb.assembler.classic.Assembler > destroyResource > INFO: Stopping ResourceAdapter: hazelcast-ra-3.1RA > Oct 31, 2013 11:40:45 AM org.apache.openejb.assembler.classic.Assembler > destroyResource > SEVERE: ResourceAdapter Shutdown Failed: hazelcast-ra-3.1RA > java.lang.IllegalStateException: zip file closed > at java.util.zip.ZipFile.ensureOpen(ZipFile.java:634) > at java.util.zip.ZipFile.getEntry(ZipFile.java:305) > at java.util.jar.JarFile.getEntry(JarFile.java:226) > at java.util.jar.JarFile.getJarEntry(JarFile.java:209) > at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:840) > at sun.misc.URLClassPath.getResource(URLClassPath.java:199) > at java.net.URLClassLoader$1.run(URLClassLoader.java:358) > at java.net.URLClassLoader$1.run(URLClassLoader.java:355) > at java.security.AccessController.doPrivileged(Native Method) > at java.net.URLClassLoader.findClass(URLClassLoader.java:354) > at > org.apache.openejb.util.classloader.URLClassLoaderFirst.loadInternal(URLClassLoaderFirst.java:162) > at > org.apache.openejb.util.classloader.URLClassLoaderFirst.loadClass(URLClassLoaderFirst.java:115) > at java.lang.ClassLoader.loadClass(ClassLoader.java:358) > at > com.hazelcast.jca.ResourceAdapterImpl.stop(ResourceAdapterImpl.java:111) > at > org.apache.openejb.assembler.classic.Assembler.destroyResource(Assembler.java:1397) > at > org.apache.openejb.assembler.classic.Assembler.destroyResourceTree(Assembler.java:1382) > at > org.apache.openejb.assembler.classic.Assembler.destroy(Assembler.java:1352) > at org.apache.openejb.OpenEJB.destroy(OpenEJB.java:264) > at > org.apache.tomee.catalina.TomcatLoader.destroy(TomcatLoader.java:390) > at > org.apache.tomee.catalina.TomcatWebAppBuilder.afterStop(TomcatWebAppBuilder.java:1868) > at > org.apache.tomee.catalina.GlobalListenerSupport.lifecycleEvent(GlobalListenerSupport.java:154) > at > org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) > at > org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90) > at > org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402) > at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:252) > at org.apache.catalina.startup.Catalina.stop(Catalina.java:764) > at > org.apache.catalina.startup.Catalina$CatalinaShutdownHook.run(Catalina.java:910) > > > Trevor Stevens > [email protected] > >
