< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Modules.java

Print this page

        

@@ -370,14 +370,23 @@
                     Location plocn = fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH) ?
                             fileManager.getLocationForModule(StandardLocation.PATCH_MODULE_PATH,
                                                              tree.sourcefile, getPackageName(tree)) :
                             null;
 
-                    if (msplocn != null) {
                         if (plocn != null) {
-                            log.error(tree.pos(), Errors.FilePatchedAndMsp);
+                        Name name = names.fromString(fileManager.inferModuleName(plocn));
+                        ModuleSymbol msym = moduleFinder.findModule(name);
+                        tree.modle = msym;
+                        rootModules.add(msym);
+
+                        if (msplocn != null) {
+                            Name mspname = names.fromString(fileManager.inferModuleName(msplocn));
+                            if (name != mspname) {
+                                log.error(tree.pos(), Errors.FilePatchedAndMsp(name, mspname));
+                            }
                         }
+                    } else if (msplocn != null) {
                         Name name = names.fromString(fileManager.inferModuleName(msplocn));
                         ModuleSymbol msym;
                         JCModuleDecl decl = tree.getModuleDecl();
                         if (decl != null) {
                             msym = decl.sym;

@@ -397,15 +406,10 @@
                                         StandardLocation.CLASS_OUTPUT, msym.name.toString());
                             }
                         }
                         tree.modle = msym;
                         rootModules.add(msym);
-                    } else if (plocn != null) {
-                        Name name = names.fromString(fileManager.inferModuleName(plocn));
-                        ModuleSymbol msym = moduleFinder.findModule(name);
-                        tree.modle = msym;
-                        rootModules.add(msym);
                     } else if (c != null && c.packge().modle == syms.unnamedModule) {
                         tree.modle = syms.unnamedModule;
                     } else {
                         if (tree.getModuleDecl() != null) {
                             log.error(tree.pos(), Errors.ModuleNotFoundOnModuleSourcePath);

@@ -438,19 +442,20 @@
                                 checkNoAllModulePath();
                                 defaultModule = moduleFinder.findModule(names.fromString(moduleOverride));
                                 if (legacyModuleOverride != null) {
                                     defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
                                 }
+                                defaultModule.patchOutputLocation = StandardLocation.CLASS_OUTPUT;
                             } else {
                                 // Question: why not do findAllModules and initVisiblePackages here?
                                 // i.e. body of unnamedModuleCompleter
                                 defaultModule.completer = getUnnamedModuleCompleter();
                                 defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
                                 defaultModule.classLocation = StandardLocation.CLASS_PATH;
                             }
                         } else {
-                            checkSpecifiedModule(trees, moduleOverride, Errors.ModuleInfoWithPatchedModuleClasspath);
+                            checkSpecifiedModule(trees, moduleOverride, Errors.ModuleInfoWithPatchedModuleClassoutput);
                             checkNoAllModulePath();
                             defaultModule.complete();
                             // Question: why not do completeModule here?
                             defaultModule.completer = sym -> completeModule((ModuleSymbol) sym);
                             defaultModule.sourceLocation = StandardLocation.SOURCE_PATH;
< prev index next >