mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 15:24:43 +02:00
8239575: javadoc triggers javac AssertionError for annos on modules
Ensure ModuleSymbols are implicitly loaded only once in the javadoc context. Reviewed-by: jjg
This commit is contained in:
parent
b3666b94a3
commit
9d57eefe6e
2 changed files with 35 additions and 15 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2015, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -248,23 +248,26 @@ public class ModuleFinder {
|
|||
}
|
||||
|
||||
ModuleSymbol msym = syms.enterModule(name);
|
||||
msym.module_info.classfile = fo;
|
||||
if (fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH) && name != names.error) {
|
||||
msym.patchLocation = fileManager.getLocationForModule(StandardLocation.PATCH_MODULE_PATH, name.toString());
|
||||
|
||||
if (msym.patchLocation != null) {
|
||||
JavaFileObject patchFO = getModuleInfoFromLocation(StandardLocation.CLASS_OUTPUT, Kind.CLASS);
|
||||
patchFO = preferredFileObject(getModuleInfoFromLocation(msym.patchLocation, Kind.CLASS), patchFO);
|
||||
patchFO = preferredFileObject(getModuleInfoFromLocation(msym.patchLocation, Kind.SOURCE), patchFO);
|
||||
if (msym.module_info.classfile == null) {
|
||||
msym.module_info.classfile = fo;
|
||||
if (fileManager.hasLocation(StandardLocation.PATCH_MODULE_PATH) && name != names.error) {
|
||||
msym.patchLocation = fileManager.getLocationForModule(StandardLocation.PATCH_MODULE_PATH, name.toString());
|
||||
|
||||
if (patchFO != null) {
|
||||
msym.module_info.classfile = patchFO;
|
||||
if (msym.patchLocation != null) {
|
||||
JavaFileObject patchFO = getModuleInfoFromLocation(StandardLocation.CLASS_OUTPUT, Kind.CLASS);
|
||||
patchFO = preferredFileObject(getModuleInfoFromLocation(msym.patchLocation, Kind.CLASS), patchFO);
|
||||
patchFO = preferredFileObject(getModuleInfoFromLocation(msym.patchLocation, Kind.SOURCE), patchFO);
|
||||
|
||||
if (patchFO != null) {
|
||||
msym.module_info.classfile = patchFO;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
msym.completer = Completer.NULL_COMPLETER;
|
||||
classFinder.fillIn(msym.module_info);
|
||||
msym.completer = Completer.NULL_COMPLETER;
|
||||
classFinder.fillIn(msym.module_info);
|
||||
}
|
||||
|
||||
return msym;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -23,7 +23,7 @@
|
|||
|
||||
/*
|
||||
* @test
|
||||
* @bug 8159305 8166127 8175860 8176481
|
||||
* @bug 8159305 8166127 8175860 8176481 8239575
|
||||
* @summary Tests primarily the module graph computations.
|
||||
* @modules
|
||||
* jdk.javadoc/jdk.javadoc.internal.api
|
||||
|
@ -653,4 +653,21 @@ public class Modules extends ModuleTestBase {
|
|||
.write(src);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSingleModuleOptionWithSourcePathAndAnnotatedModule(Path base) throws Exception {
|
||||
Path src = base.resolve("src");
|
||||
Path mod = Paths.get(src.toString(), "m1");
|
||||
tb.writeJavaFiles(mod,
|
||||
"@Deprecated module m1 { exports p; }",
|
||||
"package p; public class C { }",
|
||||
"package p; public class P { }");
|
||||
execTask("--source-path", mod.toString(),
|
||||
"--module", "m1");
|
||||
checkModulesSpecified("m1");
|
||||
checkPackagesIncluded("p");
|
||||
checkTypesIncluded("p.C");
|
||||
checkTypesIncluded("p.P");
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue