Reduce cache memory usage for classes with no annotations. Review comment from kkolinko.
authormarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 7 Sep 2011 20:07:22 +0000 (20:07 +0000)
committermarkt <markt@13f79535-47bb-0310-9956-ffa450edef68>
Wed, 7 Sep 2011 20:07:22 +0000 (20:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1166366 13f79535-47bb-0310-9956-ffa450edef68

java/org/apache/catalina/core/DefaultInstanceManager.java

index 132d4b3..fff9135 100644 (file)
@@ -31,6 +31,7 @@ import java.security.PrivilegedAction;
 import java.security.PrivilegedActionException;
 import java.security.PrivilegedExceptionAction;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.List;
 import java.util.Map;
 import java.util.Properties;
@@ -402,6 +403,10 @@ public class DefaultInstanceManager implements InstanceManager {
                                 annotation.name()));
                     }
                 }
+                if (annotations.size() == 0) {
+                    // Use common empty list to save memory 
+                    annotations = Collections.emptyList();
+                }
                 annotationCache.put(clazz, annotations);
             } else {
                 for (AnnotationCacheEntry entry : annotations) {