--- old/test/tools/javac/processing/model/element/TestPackageElement.java 2017-02-01 13:37:56.617881843 -0800 +++ new/test/tools/javac/processing/model/element/TestPackageElement.java 2017-02-01 13:37:56.509935839 -0800 @@ -23,16 +23,18 @@ /* * @test - * @bug 6449798 6399404 + * @bug 6449798 6399404 8173776 * @summary Test basic workings of PackageElement * @author Joseph D. Darcy * @library /tools/javac/lib * @modules java.compiler * jdk.compiler * @build JavacTestingAbstractProcessor TestPackageElement - * @compile -processor TestPackageElement -proc:only TestPackageElement.java + * @compile -processor TestPackageElement -proc:only TestPackageElement.java + * @compile -processor TestPackageElement -proc:only --release 8 TestPackageElement.java */ +import java.util.Objects; import java.util.Set; import javax.annotation.processing.*; import javax.lang.model.SourceVersion; @@ -67,7 +69,22 @@ PackageElement javaLang = eltUtils.getPackageElement("java.lang"); if (javaLang.isUnnamed()) throw new RuntimeException("Package java.lang is unnamed!"); + + testEnclosingElement(javaLang); } return true; } + + void testEnclosingElement(PackageElement javaLang) { + SourceVersion version = processingEnv.getSourceVersion(); + Element enclosing = javaLang.getEnclosingElement(); + Element expectedEnclosing = + (version.compareTo(RELEASE_9) < 0) ? // No modules + null : + eltUtils.getModuleElement("java.base"); + + if (!Objects.equals(enclosing, expectedEnclosing)) + throw new RuntimeException("Unexpected enclosing element under source version " + + version); + } }