< prev index next >

test/hotspot/jtreg/runtime/Nestmates/membership/TestNestmateMembership.java

Print this page
rev 58565 : 8238358: Implementation of JEP 371: Hidden Classes
Reviewed-by: duke
Contributed-by: mandy.chung@oracle.com, lois.foltan@oracle.com, david.holmes@oracle.com, harold.seigel@oracle.com, serguei.spitsyn@oracle.com, alex.buckley@oracle.com, jamsheed.c.m@oracle.com

*** 1,7 **** /* ! * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. --- 1,7 ---- /* ! * Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation.
*** 695,706 **** } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "class TestNestmateMembership$CallerNoHost tried to access " + ! "private method 'void TestNestmateMembership$Target.m()'"; try { CallerNoHost.invokeTarget(); throw new Error("Missing IllegalAccessError: " + msg); } catch (IllegalAccessError expected) { --- 695,706 ---- } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "class TestNestmateMembership$CallerNoHost tried to access private " + ! "method 'void TestNestmateMembership$Target.m()'"; try { CallerNoHost.invokeTarget(); throw new Error("Missing IllegalAccessError: " + msg); } catch (IllegalAccessError expected) {
*** 718,740 **** } static void test_SelfHostInvoke() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.invokeTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.invokeTargetSelfHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetSelfHost.m()void/invokeStatic"; try { Caller.invokeTargetSelfHostMH(); --- 718,742 ---- } static void test_SelfHostInvoke() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member)"; try { Caller.invokeTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetSelfHost with modifiers \"private static\""; try { Caller.invokeTargetSelfHostReflectively(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetSelfHost.m()void/invokeStatic"; try { Caller.invokeTargetSelfHostMH();
*** 743,789 **** catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.invokeTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + - " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.invokeTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_MissingHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Unable to load nest-host class (NoTargetMissingHost) of " + ! "TestNestmateMembership$TargetMissingHost"; ! String cause_msg = "NoTargetMissingHost"; try { Caller.invokeTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.invokeTargetMissingHostReflectively(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } msg = "no such method: TestNestmateMembership$TargetMissingHost.m()void/invokeStatic"; try { Caller.invokeTargetMissingHostMH(); throw new Error("Missing IllegalAccessException: " + msg); --- 745,790 ---- catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.invokeTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerSelfHost.invokeTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_MissingHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Nest host resolution of TestNestmateMembership$TargetMissingHost with host" + ! " NoTargetMissingHost failed: java.lang.NoClassDefFoundError: NoTargetMissingHost"; try { Caller.invokeTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class" + + " TestNestmateMembership$TargetMissingHost with modifiers \"private static\""; try { Caller.invokeTargetMissingHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetMissingHost.m()void/invokeStatic"; try { Caller.invokeTargetMissingHostMH(); throw new Error("Missing IllegalAccessException: " + msg);
*** 798,845 **** } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Unable to load nest-host class (NoCallerMissingHost) of " + ! "TestNestmateMembership$CallerMissingHost"; ! cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.invokeTarget(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } - msg = "Unable to load nest-host class (NoCallerMissingHost) of "+ - "TestNestmateMembership$CallerMissingHost"; - cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.invokeTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } } static void test_NotInstanceHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { Caller.invokeTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.invokeTargetNotInstanceHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetNotInstanceHost.m()void/invokeStatic"; try { Caller.invokeTargetNotInstanceHostMH(); --- 799,844 ---- } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Nest host resolution of TestNestmateMembership$CallerMissingHost with host" + ! " NoCallerMissingHost failed: java.lang.NoClassDefFoundError: NoCallerMissingHost"; try { CallerMissingHost.invokeTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } try { CallerMissingHost.invokeTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } } static void test_NotInstanceHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { Caller.invokeTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class "+ + "TestNestmateMembership$TargetNotInstanceHost with modifiers \"private static\""; try { Caller.invokeTargetNotInstanceHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetNotInstanceHost.m()void/invokeStatic"; try { Caller.invokeTargetNotInstanceHostMH();
*** 847,892 **** } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.invokeTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ - "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.invokeTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_NotOurHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); ! String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.invokeTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.invokeTargetNotOurHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetNotOurHost.m()void/invokeStatic"; try { Caller.invokeTargetNotOurHostMH(); --- 846,891 ---- } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a " + ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { CallerNotInstanceHost.invokeTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotInstanceHost.invokeTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_NotOurHostInvoke() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); ! String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a " + ! "nest member of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.invokeTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotOurHost with modifiers \"private static\""; try { Caller.invokeTargetNotOurHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such method: TestNestmateMembership$TargetNotOurHost.m()void/invokeStatic"; try { Caller.invokeTargetNotOurHostMH();
*** 895,939 **** catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.invokeTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + - " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.invokeTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostInvoke() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doInvoke(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doInvoke(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } // constructor tests --- 894,936 ---- catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.invokeTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotOurHost.invokeTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostInvoke() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "type P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doInvoke(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doInvoke(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } // constructor tests
*** 951,963 **** System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "method 'void TestNestmateMembership$TargetNoHost.<init>()'"; try { Caller.newTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private\""; try { --- 948,960 ---- System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "method 'void TestNestmateMembership$TargetNoHost.<init>()'"; try { Caller.newTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private\""; try {
*** 978,1019 **** msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "method 'void TestNestmateMembership$Target.<init>()'"; try { CallerNoHost.newTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "method 'void TestNestmateMembership$TargetNoHost.<init>()'"; try { CallerNoHost.newTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_SelfHostConstruct() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.newTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.newTargetSelfHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetSelfHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetSelfHostMH(); --- 975,1018 ---- msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "method 'void TestNestmateMembership$Target.<init>()'"; try { CallerNoHost.newTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "method 'void TestNestmateMembership$TargetNoHost.<init>()'"; try { CallerNoHost.newTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_SelfHostConstruct() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.newTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetSelfHost with modifiers \"private\""; try { Caller.newTargetSelfHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetSelfHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetSelfHostMH();
*** 1022,1116 **** catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.newTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + - " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.newTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_MissingHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Unable to load nest-host class (NoTargetMissingHost) of " + ! "TestNestmateMembership$TargetMissingHost"; ! String cause_msg = "NoTargetMissingHost"; try { Caller.newTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.newTargetMissingHostReflectively(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } msg = "no such constructor: TestNestmateMembership$TargetMissingHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetMissingHostMH(); throw new Error("Missing IllegalAccessException: " + msg); } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Unable to load nest-host class (NoCallerMissingHost) of " + ! "TestNestmateMembership$CallerMissingHost"; ! cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.newTarget(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } - msg = "Unable to load nest-host class (NoCallerMissingHost) of "+ - "TestNestmateMembership$CallerMissingHost"; - cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.newTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } } static void test_NotInstanceHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { Caller.newTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.newTargetNotInstanceHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetNotInstanceHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetNotInstanceHostMH(); --- 1021,1112 ---- catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.newTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerSelfHost.newTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_MissingHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Nest host resolution of TestNestmateMembership$TargetMissingHost with " + ! "host NoTargetMissingHost failed: java.lang.NoClassDefFoundError: NoTargetMissingHost"; try { Caller.newTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetMissingHost with modifiers \"private\""; try { Caller.newTargetMissingHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetMissingHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetMissingHostMH(); throw new Error("Missing IllegalAccessException: " + msg); } catch (IllegalAccessException expected) { check_expected(expected, msg); } ! msg = "Nest host resolution of TestNestmateMembership$CallerMissingHost with host " + ! "NoCallerMissingHost failed: java.lang.NoClassDefFoundError: NoCallerMissingHost"; try { CallerMissingHost.newTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } try { CallerMissingHost.newTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } } static void test_NotInstanceHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { Caller.newTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotInstanceHost with modifiers \"private\""; try { Caller.newTargetNotInstanceHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetNotInstanceHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetNotInstanceHostMH();
*** 1119,1163 **** catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.newTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ - "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.newTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_NotOurHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.newTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.newTargetNotOurHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetNotOurHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetNotOurHostMH(); --- 1115,1159 ---- catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { CallerNotInstanceHost.newTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotInstanceHost.newTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_NotOurHostConstruct() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.newTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotOurHost with modifiers \"private\""; try { Caller.newTargetNotOurHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "no such constructor: TestNestmateMembership$TargetNotOurHost.<init>()void/newInvokeSpecial"; try { Caller.newTargetNotOurHostMH();
*** 1166,1210 **** catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.newTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.newTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostConstruct() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doConstruct(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doConstruct(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } // field tests --- 1162,1206 ---- catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.newTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.newTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostConstruct() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "type P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doConstruct(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doConstruct(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } // field tests
*** 1222,1234 **** System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { Caller.getFieldTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private static\""; try { --- 1218,1230 ---- System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { Caller.getFieldTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private static\""; try {
*** 1249,1477 **** msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$Target.f"; try { CallerNoHost.getFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { CallerNoHost.getFieldTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_SelfHostGetField() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.getFieldTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetSelfHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetSelfHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.getFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + - " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.getFieldTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_MissingHostGetField() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Unable to load nest-host class (NoTargetMissingHost) of " + ! "TestNestmateMembership$TargetMissingHost"; ! String cause_msg = "NoTargetMissingHost"; try { Caller.getFieldTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.getFieldTargetMissingHostReflectively(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.getFieldTargetMissingHostMH(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } ! msg = "Unable to load nest-host class (NoCallerMissingHost) of " + ! "TestNestmateMembership$CallerMissingHost"; ! cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.getFieldTarget(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } - msg = "Unable to load nest-host class (NoCallerMissingHost) of "+ - "TestNestmateMembership$CallerMissingHost"; - cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.getFieldTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } } static void test_NotInstanceHostGetField() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { Caller.getFieldTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetNotInstanceHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetNotInstanceHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.getFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ - "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.getFieldTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_NotOurHostGetField() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.getFieldTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetNotOurHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.getFieldTargetNotOurHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.getFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + - " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.getFieldTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostGetField() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doGetField(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doGetField(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_GoodPutField(){ --- 1245,1478 ---- msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$Target.f"; try { CallerNoHost.getFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { CallerNoHost.getFieldTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_SelfHostGetField() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.getFieldTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetSelfHost with modifiers \"private static\""; try { Caller.getFieldTargetSelfHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetSelfHost.f/int/getStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.getFieldTargetSelfHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.getFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerSelfHost.getFieldTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_MissingHostGetField() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Nest host resolution of TestNestmateMembership$TargetMissingHost with " + ! "host NoTargetMissingHost failed: java.lang.NoClassDefFoundError: NoTargetMissingHost"; try { Caller.getFieldTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetMissingHost with modifiers \"private static\""; try { Caller.getFieldTargetMissingHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetMissingHost.f/int/getStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.getFieldTargetMissingHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } ! msg = "Nest host resolution of TestNestmateMembership$CallerMissingHost with " + ! "host NoCallerMissingHost failed: java.lang.NoClassDefFoundError: NoCallerMissingHost"; try { CallerMissingHost.getFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } try { CallerMissingHost.getFieldTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } } static void test_NotInstanceHostGetField() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { Caller.getFieldTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotInstanceHost with modifiers \"private static\""; try { Caller.getFieldTargetNotInstanceHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetNotInstanceHost.f/int/getStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.getFieldTargetNotInstanceHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { CallerNotInstanceHost.getFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotInstanceHost.getFieldTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_NotOurHostGetField() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.getFieldTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotOurHost with modifiers \"private static\""; try { Caller.getFieldTargetNotOurHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetNotOurHost.f/int/getStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.getFieldTargetNotOurHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.getFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotOurHost.getFieldTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostGetField() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "type P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doGetField(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doGetField(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_GoodPutField(){
*** 1487,1499 **** System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { Caller.putFieldTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private static\""; try { --- 1488,1500 ---- System.out.println("Testing for missing nest-host attribute"); String msg = "class TestNestmateMembership$Caller tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { Caller.putFieldTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$Caller cannot access a member of class " + "TestNestmateMembership$TargetNoHost with modifiers \"private static\""; try {
*** 1514,1775 **** msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$Target.f"; try { CallerNoHost.putFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { CallerNoHost.putFieldTargetNoHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_SelfHostPutField() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.putFieldTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetSelfHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetSelfHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.putFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + - " of TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.putFieldTargetSelfHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_MissingHostPutField() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Unable to load nest-host class (NoTargetMissingHost) of " + ! "TestNestmateMembership$TargetMissingHost"; ! String cause_msg = "NoTargetMissingHost"; try { Caller.putFieldTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.putFieldTargetMissingHostReflectively(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } try { Caller.putFieldTargetMissingHostMH(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } ! ! msg = "Unable to load nest-host class (NoCallerMissingHost) of " + ! "TestNestmateMembership$CallerMissingHost"; ! cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.putFieldTarget(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } - msg = "Unable to load nest-host class (NoCallerMissingHost) of "+ - "TestNestmateMembership$CallerMissingHost"; - cause_msg = "NoCallerMissingHost"; try { CallerMissingHost.putFieldTargetMissingHost(); ! throw new Error("Missing NoClassDefFoundError: " + msg); } ! catch (NoClassDefFoundError expected) { ! check_expected(expected, msg, cause_msg); } } static void test_NotInstanceHostPutField() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { Caller.putFieldTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetNotInstanceHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetNotInstanceHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.putFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ - "nest member of [LInvalidNestHost; (loader: 'app'): current type is not listed as a nest member"; try { CallerNotInstanceHost.putFieldTargetNotInstanceHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_NotOurHostPutField() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.putFieldTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetNotOurHostReflectively(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { Caller.putFieldTargetNotOurHostMH(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.putFieldTarget(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } - msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + - " of InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.putFieldTargetNotOurHost(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostPutField() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doPutField(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doPutField(); ! throw new Error("Missing IncompatibleClassChangeError: " + msg); } ! catch (IncompatibleClassChangeError expected) { check_expected(expected, msg); } } // utilities static void check_expected(Throwable expected, String msg) { if (!expected.getMessage().contains(msg)) { throw new Error("Wrong " + expected.getClass().getSimpleName() +": \"" + expected.getMessage() + "\" does not contain \"" + ! msg + "\""); } System.out.println("OK - got expected exception: " + expected); } - - static void check_expected(Throwable expected, String msg, String cause_msg) { - if (!expected.getMessage().contains(msg)) { - throw new Error("Wrong " + expected.getClass().getSimpleName() +": \"" + - expected.getMessage() + "\" does not contain \"" + - msg + "\""); - } - Throwable cause = expected.getCause(); - if (cause instanceof NoClassDefFoundError) { - if (!cause.getMessage().contains(cause_msg)) { - throw new Error(expected.getClass().getSimpleName() + - " has wrong cause " + cause.getClass().getSimpleName() +": \"" + - cause.getMessage() + "\" does not contain \"" + - cause_msg + "\""); - } - } - else throw new Error(expected.getClass().getSimpleName() + - " has wrong cause " + cause.getClass().getSimpleName()); - - System.out.println("OK - got expected exception: " + expected + - " with cause " + cause); - } - } --- 1515,1756 ---- msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$Target.f"; try { CallerNoHost.putFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } msg = "class TestNestmateMembership$CallerNoHost tried to access private " + "field TestNestmateMembership$TargetNoHost.f"; try { CallerNoHost.putFieldTargetNoHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_SelfHostPutField() throws Throwable { System.out.println("Testing for class that lists itself as nest-host"); String msg = "Type TestNestmateMembership$TargetSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$TargetSelfHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.putFieldTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetSelfHost with modifiers \"private static\""; try { Caller.putFieldTargetSelfHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetSelfHost.f/int/putStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.putFieldTargetSelfHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerSelfHost (loader: 'app') is not a nest member" + ! " of type TestNestmateMembership$CallerSelfHost (loader: 'app'): current type is not listed as a nest member"; try { CallerSelfHost.putFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerSelfHost.putFieldTargetSelfHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_MissingHostPutField() throws Throwable { System.out.println("Testing for nest-host class that does not exist"); ! String msg = "Nest host resolution of TestNestmateMembership$TargetMissingHost with " + ! "host NoTargetMissingHost failed: java.lang.NoClassDefFoundError: NoTargetMissingHost"; try { Caller.putFieldTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetMissingHost with modifiers \"private static\""; try { Caller.putFieldTargetMissingHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetMissingHost.f/int/putStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.putFieldTargetMissingHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { ! check_expected(expected, msg); } ! msg = "Nest host resolution of TestNestmateMembership$CallerMissingHost with host " + ! "NoCallerMissingHost failed: java.lang.NoClassDefFoundError: NoCallerMissingHost"; try { CallerMissingHost.putFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } try { CallerMissingHost.putFieldTargetMissingHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { ! check_expected(expected, msg); } } static void test_NotInstanceHostPutField() throws Throwable { System.out.println("Testing for nest-host class that is not an instance class"); String msg = "Type TestNestmateMembership$TargetNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { Caller.putFieldTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotInstanceHost with modifiers \"private static\""; try { Caller.putFieldTargetNotInstanceHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetNotInstanceHost.f/int/putStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.putFieldTargetNotInstanceHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotInstanceHost (loader: 'app') is not a "+ ! "nest member of type [LInvalidNestHost; (loader: 'app'): host is not an instance class"; try { CallerNotInstanceHost.putFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotInstanceHost.putFieldTargetNotInstanceHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_NotOurHostPutField() throws Throwable { System.out.println("Testing for nest-host class that does not list us in its nest"); String msg = "Type TestNestmateMembership$TargetNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { Caller.putFieldTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } + msg = "class TestNestmateMembership$Caller cannot access a member of class " + + "TestNestmateMembership$TargetNotOurHost with modifiers \"private static\""; try { Caller.putFieldTargetNotOurHostReflectively(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } + msg = "member is private: TestNestmateMembership$TargetNotOurHost.f/int/putStatic, " + + "from class TestNestmateMembership$Caller"; try { Caller.putFieldTargetNotOurHostMH(); ! throw new Error("Missing IllegalAccessException: " + msg); } ! catch (IllegalAccessException expected) { check_expected(expected, msg); } msg = "Type TestNestmateMembership$CallerNotOurHost (loader: 'app') is not a nest member" + ! " of type InvalidNestHost (loader: 'app'): current type is not listed as a nest member"; try { CallerNotOurHost.putFieldTarget(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { CallerNotOurHost.putFieldTargetNotOurHost(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } static void test_WrongPackageHostPutField() { System.out.println("Testing for nest-host and nest-member in different packages"); String msg = "Type P2.PackagedNestHost2$Member (loader: 'app') is not a nest member of " + ! "type P1.PackagedNestHost (loader: 'app'): types are in different packages"; try { P1.PackagedNestHost.doPutField(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } try { P2.PackagedNestHost2.Member.doPutField(); ! throw new Error("Missing IllegalAccessError: " + msg); } ! catch (IllegalAccessError expected) { check_expected(expected, msg); } } // utilities static void check_expected(Throwable expected, String msg) { if (!expected.getMessage().contains(msg)) { throw new Error("Wrong " + expected.getClass().getSimpleName() +": \"" + expected.getMessage() + "\" does not contain \"" + ! msg + "\"", expected); } System.out.println("OK - got expected exception: " + expected); } }
< prev index next >