--- old/test/jdk/java/lang/invoke/defineHiddenClass/BasicTest.java 2020-03-06 00:26:29.056899809 -0500 +++ new/test/jdk/java/lang/invoke/defineHiddenClass/BasicTest.java 2020-03-06 00:26:27.919887409 -0500 @@ -285,18 +285,15 @@ public void hasInnerClassesOrEnclosingMethodAttribute(String className, String badDeclaringClassName) throws Throwable { byte[] bytes = Files.readAllBytes(CLASSES_10_DIR.resolve(className + ".class")); Class hc = lookup().defineHiddenClass(bytes, false).lookupClass(); - hiddenClassWithBadAttribute(hc, badDeclaringClassName, null); + hiddenClassWithBadAttribute(hc, badDeclaringClassName); } - private static final String BAD_NEST_HOST_CLASS_ERROR = "Unable to load nest-host class (Outer) of Outer$Inner/"; - // define a hidden class with static nest membership - // it fails when it attempts to validate the nest membership @Test public void hasStaticNestHost() throws Exception { byte[] bytes = Files.readAllBytes(CLASSES_DIR.resolve("Outer$Inner.class")); Class hc = lookup().defineHiddenClass(bytes, false).lookupClass(); - hiddenClassWithBadAttribute(hc, "Outer", BAD_NEST_HOST_CLASS_ERROR); + hiddenClassWithBadAttribute(hc, "Outer"); } @Test @@ -305,19 +302,12 @@ Class hc = lookup().defineHiddenClass(bytes, false).lookupClass(); assertHiddenClass(hc); assertTrue(hc.getNestHost() == hc); - try { - // fail to validate the static nest membership - hc.getNestMembers(); - assertTrue(false); - } catch (NoClassDefFoundError e) { - if (!e.getMessage().equals("Outer$Inner")) { - throw e; - } - } + Class[] members = hc.getNestMembers(); + assertTrue(members.length == 1 && members[0] == hc); } // a hidden class with bad InnerClasses or EnclosingMethod attribute - private void hiddenClassWithBadAttribute(Class hc, String badDeclaringClassName, String badNestMembersError) { + private void hiddenClassWithBadAttribute(Class hc, String badDeclaringClassName) { assertTrue(hc.isHiddenClass()); assertTrue(hc.getCanonicalName() == null); assertTrue(hc.getName().contains("/")); @@ -333,17 +323,11 @@ declaringClassNotFound(hc, badDeclaringClassName); } - // validation of nest membership may fail + // validation of nest membership assertTrue(hc.getNestHost() == hc); - try { - // validate the static nest membership - hc.getNestMembers(); - assertTrue(badNestMembersError == null); - } catch (NoClassDefFoundError e) { - if (!e.getMessage().startsWith(badNestMembersError)) { - throw e; - } - } + // validate the static nest membership + Class[] members = hc.getNestMembers(); + assertTrue(members.length == 1 && members[0] == hc); } // Class::getSimpleName, Class::isMemberClass