Skip to content

Commit f2959f0

Browse files
committed
Warn if a package access is incorrect
1 parent 31dcdb7 commit f2959f0

1 file changed

Lines changed: 13 additions & 6 deletions

File tree

src/main/java/io/github/dmlloyd/modules/ModuleClassLoader.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -785,15 +785,22 @@ LinkState.Packages linkPackages() {
785785
// link up special package accesses of dependency (only for immediate dependencies)
786786
Module myModule = module();
787787
for (Map.Entry<String, PackageAccess> entry : dependency.packageAccesses().entrySet()) {
788-
switch (entry.getValue()) {
789-
case EXPORTED -> Access.addExports(depModule, entry.getKey(), myModule);
790-
case OPEN -> Access.addOpens(depModule, entry.getKey(), myModule);
791-
case PRIVATE -> {
792-
continue;
788+
String pn = entry.getKey();
789+
if (depModule.getPackages().contains(pn)) {
790+
switch (entry.getValue()) {
791+
case EXPORTED -> Access.addExports(depModule, pn, myModule);
792+
case OPEN -> Access.addOpens(depModule, pn, myModule);
793+
case PRIVATE -> {
794+
continue;
795+
}
793796
}
797+
} else {
798+
log.warnf("Module %s requested access to package %s in %s, but the package is not present in that module",
799+
moduleName(), pn, dependency.moduleName()
800+
);
794801
}
795802
if (linked) {
796-
modulesByPackage.putIfAbsent(entry.getKey(), lm);
803+
modulesByPackage.putIfAbsent(pn, lm);
797804
}
798805
}
799806
}

0 commit comments

Comments
 (0)