Author: markt
Date: Wed Mar 14 08:07:22 2018
New Revision: 1826700
URL: http://svn.apache.org/viewvc?rev=1826700&view=rev
Log:
Fix backport. Java 6 does not have ReflectiveOperationException
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java
Modified:
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java
URL:
http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java?rev=1826700&r1=1826699&r2=1826700&view=diff
==============================================================================
---
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java
(original)
+++
tomcat/tc7.0.x/trunk/java/org/apache/catalina/loader/WebappClassLoaderBase.java
Wed Mar 14 08:07:22 2018
@@ -3049,21 +3049,31 @@ public abstract class WebappClassLoaderB
Class<?> clazz = Class.forName("java.io.ObjectStreamClass$Caches");
clearCache(clazz, "localDescs");
clearCache(clazz, "reflectors");
- } catch (ReflectiveOperationException e) {
- log.warn(sm.getString(
- "webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
} catch (SecurityException e) {
log.warn(sm.getString(
"webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
} catch (ClassCastException e) {
log.warn(sm.getString(
"webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
+ } catch (IllegalArgumentException e) {
+ log.warn(sm.getString(
+ "webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
+ } catch (NoSuchFieldException e) {
+ log.warn(sm.getString(
+ "webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
+ } catch (IllegalAccessException e) {
+ log.warn(sm.getString(
+ "webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
+ } catch (ClassNotFoundException e) {
+ log.warn(sm.getString(
+ "webappClassLoader.clearObjectStreamClassCachesFail",
getContextName()), e);
}
}
- private void clearCache(Class<?> target, String mapName)
- throws ReflectiveOperationException, SecurityException,
ClassCastException {
+ private void clearCache(Class<?> target, String mapName) throws
SecurityException,
+ ClassCastException, NoSuchFieldException, IllegalArgumentException,
+ IllegalAccessException {
Field f = target.getDeclaredField(mapName);
f.setAccessible(true);
Map<?,?> map = (Map<?,?>) f.get(null);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]