--- old/src/java.compiler/share/classes/javax/lang/model/util/Elements.java 2019-01-08 19:24:12.249144051 -0800 +++ new/src/java.compiler/share/classes/javax/lang/model/util/Elements.java 2019-01-08 19:24:11.877144051 -0800 @@ -451,6 +451,7 @@ /** * Returns the package of an element. The package of a package is * itself. + * The package of a module is {@code null}. * * @param type the element being examined * @return the package of an element --- old/src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java 2019-01-08 19:24:13.185144051 -0800 +++ new/src/jdk.compiler/share/classes/com/sun/tools/javac/model/JavacElements.java 2019-01-08 19:24:12.785144051 -0800 @@ -436,7 +436,10 @@ @DefinedBy(Api.LANGUAGE_MODEL) public PackageElement getPackageOf(Element e) { - return cast(Symbol.class, e).packge(); + if (e.getKind() == ElementKind.MODULE) + return null; + else + return cast(Symbol.class, e).packge(); } @DefinedBy(Api.LANGUAGE_MODEL) --- old/test/langtools/tools/javac/processing/model/util/elements/TestGetPackageOf.java 2019-01-08 19:24:14.209144051 -0800 +++ new/test/langtools/tools/javac/processing/model/util/elements/TestGetPackageOf.java 2019-01-08 19:24:13.765144051 -0800 @@ -56,6 +56,7 @@ TypeElement stringElt = eltUtils.getTypeElement("java.lang.String"); PackageElement javaLangPkg = eltUtils.getPackageElement("java.lang"); PackageElement unnamedPkg = eltUtils.getPackageElement(""); + ModuleElement moduleElt = eltUtils.getModuleElement("java.base"); PackageElement pkg = null; if (!javaLangPkg.equals(pkg=eltUtils.getPackageOf(stringElt) ) ) @@ -66,6 +67,10 @@ if (!unnamedPkg.equals(pkg=eltUtils.getPackageOf(unnamedPkg) ) ) throw new RuntimeException("Unexpected package for unnamed pkg: " + pkg); + + if (eltUtils.getPackageOf(moduleElt) != null) + throw new RuntimeException("Unexpected package for module" + + moduleElt.getSimpleName()); } return true; }