diff options
| author | Jeff Hao <jeffhao@google.com> | 2014-04-01 11:21:30 -0700 |
|---|---|---|
| committer | Jeff Hao <jeffhao@google.com> | 2014-04-01 18:28:13 +0000 |
| commit | 925b687c29ddfe952c29e13e6c05c2491e3b37f7 (patch) | |
| tree | de09aba0c9f2419feb880f8842d59202a27f7c9f /test | |
| parent | d265a8ab12e1b783af42bf07a264edbb86826d2c (diff) | |
| download | android_art-925b687c29ddfe952c29e13e6c05c2491e3b37f7.tar.gz android_art-925b687c29ddfe952c29e13e6c05c2491e3b37f7.tar.bz2 android_art-925b687c29ddfe952c29e13e6c05c2491e3b37f7.zip | |
Fix reflection access checks for app compatibility.
Also updates field access test.
Bug: 13740995
Change-Id: I224712cfcb0c05429b831c26980cabad7bdef49a
Diffstat (limited to 'test')
| -rw-r--r-- | test/064-field-access/src/Main.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/test/064-field-access/src/Main.java b/test/064-field-access/src/Main.java index c9b93ba846..8dd22bab97 100644 --- a/test/064-field-access/src/Main.java +++ b/test/064-field-access/src/Main.java @@ -554,15 +554,17 @@ class SubClass extends PublicClass { } // 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 @@ class SubClass extends PublicClass { 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; |
