-----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: [email protected]
For additional commands, e-mail: [email protected]