Fix reflection access checks for app compatibility.
Also updates field access test.
Bug: 13740995
Change-Id: I224712cfcb0c05429b831c26980cabad7bdef49a
diff --git a/test/064-field-access/src/Main.java b/test/064-field-access/src/Main.java
index c9b93ba..8dd22ba 100644
--- a/test/064-field-access/src/Main.java
+++ b/test/064-field-access/src/Main.java
@@ -554,15 +554,17 @@
}
// Check access or lack of to field.
Class<?> subClassAccessExceptionClass = null;
- if (f.getName().contains("Private") ||
+ if ((f.getName().contains("Private") ||
(!same_package && f.getName().contains("Package")) ||
- (!same_package && f.getName().contains("Protected"))) {
+ (!same_package && f.getName().contains("Protected"))) &&
+ !(protected_class && f.getName().contains("Public"))) {
subClassAccessExceptionClass = IllegalAccessException.class;
}
Class<?> mainClassAccessExceptionClass = null;
- if (f.getName().contains("Private") ||
+ if ((f.getName().contains("Private") ||
(!same_package && f.getName().contains("Package")) ||
- (!same_package && f.getName().contains("Protected"))) {
+ (!same_package && f.getName().contains("Protected"))) &&
+ !(protected_class && f.getName().contains("Public"))) {
mainClassAccessExceptionClass = IllegalAccessException.class;
}
@@ -605,7 +607,7 @@
for (Method m : methods) {
Class<?> subClassAccessExceptionClass = null;
- if (protected_class || m.getName().contains("Private") ||
+ if (m.getName().contains("Private") ||
(!same_package && m.getName().contains("Package")) ||
(!same_package && m.getName().contains("Protected"))) {
subClassAccessExceptionClass = IllegalAccessException.class;