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: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to