diff options
author | Brian Carlstrom <bdc@google.com> | 2015-04-22 04:29:44 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2015-04-22 04:29:44 +0000 |
commit | 0a0aeba24fa62bde02af227ab8b8aa7fe2f1f47c (patch) | |
tree | 78e1fdfa3f1aff4a514430cd9bf4211bde67a0c8 /luni | |
parent | 268cada37cbc0e1969d7fe3d7959317b99c04b90 (diff) | |
parent | 4d81882996127ca855eacde8517a7c414746530e (diff) | |
download | libcore-0a0aeba24fa62bde02af227ab8b8aa7fe2f1f47c.zip libcore-0a0aeba24fa62bde02af227ab8b8aa7fe2f1f47c.tar.gz libcore-0a0aeba24fa62bde02af227ab8b8aa7fe2f1f47c.tar.bz2 |
am 4d818829: am 72f2eb7f: Merge "Fix Class.forName(..., ..., null) to pass 068-classloader\'s testClassForName"
* commit '4d81882996127ca855eacde8517a7c414746530e':
Fix Class.forName(..., ..., null) to pass 068-classloader's testClassForName
Diffstat (limited to 'luni')
-rw-r--r-- | luni/src/main/java/java/io/ObjectInputStream.java | 5 | ||||
-rw-r--r-- | luni/src/main/java/java/lang/Package.java | 25 |
2 files changed, 17 insertions, 13 deletions
diff --git a/luni/src/main/java/java/io/ObjectInputStream.java b/luni/src/main/java/java/io/ObjectInputStream.java index 3a89b52..c588251 100644 --- a/luni/src/main/java/java/io/ObjectInputStream.java +++ b/luni/src/main/java/java/io/ObjectInputStream.java @@ -1977,7 +1977,7 @@ public class ObjectInputStream extends InputStream implements ObjectInput, Objec // original/outside caller if (++nestedLevels == 1) { // Remember the caller's class loader - callerClassLoader = VMStack.getClosestUserClassLoader(bootstrapLoader, systemLoader); + callerClassLoader = VMStack.getClosestUserClassLoader(); } result = readNonPrimitiveContent(unshared); @@ -2014,9 +2014,6 @@ public class ObjectInputStream extends InputStream implements ObjectInput, Objec return result; } - private static final ClassLoader bootstrapLoader = Object.class.getClassLoader(); - private static final ClassLoader systemLoader = ClassLoader.getSystemClassLoader(); - /** * Method to be overridden by subclasses to read the next object from the * source stream. diff --git a/luni/src/main/java/java/lang/Package.java b/luni/src/main/java/java/lang/Package.java index 7e30883..cff01b9 100644 --- a/luni/src/main/java/java/lang/Package.java +++ b/luni/src/main/java/java/lang/Package.java @@ -96,7 +96,14 @@ public class Package implements AnnotatedElement { */ public Annotation[] getAnnotations() { try { - Class<?> c = Class.forName(getName() + ".package-info"); + ClassLoader classLoader = VMStack.getCallingClassLoader(); + if (classLoader == null) { + classLoader = ClassLoader.getSystemClassLoader(); + } + Class<?> c = Class.forName(getName() + ".package-info", + // TODO: It is unclear if we need to initialize here. + true, + classLoader); return c.getAnnotations(); } catch (Exception ex) { return NO_ANNOTATIONS; @@ -175,11 +182,11 @@ public class Package implements AnnotatedElement { * @see ClassLoader#getPackage(java.lang.String) */ public static Package getPackage(String packageName) { - ClassLoader classloader = VMStack.getCallingClassLoader(); - if (classloader == null) { - classloader = ClassLoader.getSystemClassLoader(); + ClassLoader classLoader = VMStack.getCallingClassLoader(); + if (classLoader == null) { + classLoader = ClassLoader.getSystemClassLoader(); } - return classloader.getPackage(packageName); + return classLoader.getPackage(packageName); } /** @@ -189,11 +196,11 @@ public class Package implements AnnotatedElement { * @see ClassLoader#getPackages */ public static Package[] getPackages() { - ClassLoader classloader = VMStack.getCallingClassLoader(); - if (classloader == null) { - classloader = ClassLoader.getSystemClassLoader(); + ClassLoader classLoader = VMStack.getCallingClassLoader(); + if (classLoader == null) { + classLoader = ClassLoader.getSystemClassLoader(); } - return classloader.getPackages(); + return classLoader.getPackages(); } /** |