-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Austin,

On 3/21/15 6:19 PM, Austin Jones wrote:
> I'm having an issue with Tomcat 8.0.12 when undeploying contexts.
> I have autoDeploy turned off, and am pushing WARs+context.xmls
> through the Tomcat manager's deploy command.
> 
> I have several ServletContextListeners that handle proper context 
> shutdown.  The ones that cause the issue look like this:
> 
> @Override public synchronized void contextInitialized(
> ServletContextEvent event ) { if( enabled ) { 
> MyClass.initialize(); } }
> 
> @Override public synchronized void contextDestroyed(
> ServletContextEvent event ) { MyClass.release(); }
> 
> If the 'enabled' flag is not set, and MyClass was not loaded
> anywhere else in the app, the webapp ClassLoader tries to load the
> class while the context is shutting down.  It throws this
> exception: java.lang.NoClassDefFoundError: some/package/MyClass at 
> some.package.MyListener.contextDestroyed(SingletonCleaner.java:na) 
> at 
> org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4792)
>
> 
at
> org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5392)
>
> 
at
> org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232)
>
> 
at
> org.apache.catalina.core.StandardContext.reload(StandardContext.java:3768)
>
> 
at
> org.apache.catalina.startup.HostConfig.reload(HostConfig.java:1306)
>
> 
at
> org.apache.catalina.startup.HostConfig.checkResources(HostConfig.java:1238)
>
> 
at
> org.apache.catalina.startup.HostConfig.check(HostConfig.java:1493) 
> at sun.reflect.GeneratedMethodAccessor574.invoke(Unknown Source) 
> at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>
> 
at java.lang.reflect.Method.invoke(Method.java:483)
> at 
> org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:300)
>
> 
at
> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)
>
> 
- --
> Caused by: java.lang.ClassNotFoundException: some.package.MyClass 
> at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1320)
>
> 
at
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1173)
>
> 
... 45 more
> 
> I set WebappClassLoader logging levels to FINE, and got this
> output: 21-Mar-2015 14:59:46.493 FINE [localhost-startStop-1] 
> org.apache.catalina.loader.WebappClassLoader.loadClass 
> loadClass(some.package.MyClass, false) 21-Mar-2015 14:59:46.493
> FINE [localhost-startStop-1] 
> org.apache.catalina.loader.WebappClassLoader.findClass 
> findClass(some.package.MyClass)
> 
> Any ideas why the class loader is throwing the errors?

Could you try again with the latest 8.0.20? There was a change in
8.0.18 that /might/ impact your situation:
https://bz.apache.org/bugzilla/show_bug.cgi?id=57446

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
Comment: GPGTools - http://gpgtools.org

iQIcBAEBCAAGBQJVDxTQAAoJEBzwKT+lPKRYG3UP/1WvGcySKDtqMZMoTVH5H3mW
EHZiaZubtiaReAxw6z11yLijMU2TI8a7mwYz5fi34M7AQ7nke3R9Mm3p3oojfJY6
jLVSTfe2fKYAK5rAdCNnuY2K/VVtpGR+q/KYLbsPkuIQYclamHtGbFuFxmUMm73O
NQ0QdXreyPQrdeoY8sNz01Dx8nAgI+3YNAbv1TKSbXbh4qfLnoLNePBoqfu0azqC
B0/rNw6ovzYcPo9BYplwK23BjxDa+P9F7wOxxSk8nf3tEpksnRC2EsUNL9kbGtDx
TV/7xl8Ln3DpONzETGCLbrf5W6Cj1MkAiSBk5iOmbTQdCvetpQNB5D57ZLBiFMy7
CEQrpWK9rQhmklmElxsmO0UvU/BLPoUtbv5BbJNnm3cYVgChgRrSpVVDtv8l33iF
dAQCTXqtyHl46tR7lbkoeNO9/YHtJJQ93Rmw3wF+UlloXi7pRjJE1NHEbbzllUIj
ddE8eqjP20ZkOrNa0I6vuk8Z6Tkf4aqIkvjMtnfyMb+9lImF33Y4PWsLRO8rvUmS
CgNWebKGfNVoHrMJpSh/BOf1mkKkTE38hBUyRSZ66VMbTS0mAMr5nqnNfrKTm5b/
nr9K0rcvusvs9sQyjBNEMg761ZGWcPGYWtQZNnyMHL5KmI4NF8OeSSlUO8V1Yvv7
At0sF5VE58lDPP/VTDts
=GVSN
-----END PGP SIGNATURE-----

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org
For additional commands, e-mail: users-h...@tomcat.apache.org

Reply via email to