You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomee.apache.org by Trevor Stevens <ts...@me.com> on 2013/10/31 16:59:25 UTC

Exception thrown when destroying resource adapter

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
tstevens@me.com



Re: Exception thrown when destroying resource adapter

Posted by Romain Manni-Bucau <rm...@gmail.com>.
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 <ts...@me.com>:
> 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
> tstevens@me.com
>
>