OSDN Git Service

Exclude magic inner-class name from preload
authorKenny Root <kroot@google.com>
Wed, 24 Jul 2013 05:33:50 +0000 (22:33 -0700)
committerKenny Root <kroot@google.com>
Wed, 24 Jul 2013 05:37:37 +0000 (22:37 -0700)
Add a magic subclass name that will exclude inner classes that are meant
to prevent object instatiation but allow class preloading. This will
allow classes that have undesired side-effects to delay initialization
until the side-effects are no longer disruptive.

Bug: 9984058
Change-Id: I46b0784760d84a2a2da1f9f41d87ee7f70a3fc16

tools/preload/Policy.java

index ca0291b..af46820 100644 (file)
@@ -81,8 +81,9 @@ public class Policy {
         return SERVICES.contains(processName);
     }
 
-    /**Reports if the given class should be preloaded. */
+    /** Reports if the given class should be preloaded. */
     public static boolean isPreloadable(LoadedClass clazz) {
-        return clazz.systemClass && !EXCLUDED_CLASSES.contains(clazz.name);
+        return clazz.systemClass && !EXCLUDED_CLASSES.contains(clazz.name)
+                && !clazz.name.endsWith("$NoPreloadHolder");
     }
 }