summaryrefslogtreecommitdiffstats
path: root/luni
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2015-04-22 04:29:44 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2015-04-22 04:29:44 +0000
commit0a0aeba24fa62bde02af227ab8b8aa7fe2f1f47c (patch)
tree78e1fdfa3f1aff4a514430cd9bf4211bde67a0c8 /luni
parent268cada37cbc0e1969d7fe3d7959317b99c04b90 (diff)
parent4d81882996127ca855eacde8517a7c414746530e (diff)
downloadlibcore-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.java5
-rw-r--r--luni/src/main/java/java/lang/Package.java25
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();
}
/**