8156871: Possible concurrency issue with JVM_AddModuleExports

Need for single PackageEntry flag to determine a package's unqualifed export state.

Reviewed-by: acorn, ctornqvi, dholmes, jiangli
This commit is contained in:
Lois Foltan 2016-06-16 13:34:32 -04:00
parent eba25b33b9
commit f3741800fe
10 changed files with 359 additions and 16 deletions

View file

@ -40,11 +40,7 @@
// package is exported to.
//
// Packages can be exported in the following 3 ways:
// - not exported: the package has not been explicitly qualified to a
// particular module nor has it been specified to be
// unqualifiedly exported to all modules. If all states
// of exportedness are false, the package is considered
// not exported.
// - not exported: the package does not have qualified or unqualified exports.
// - qualified exports: the package has been explicitly qualified to at least
// one particular module or has been qualifiedly exported
// to all unnamed modules.
@ -125,6 +121,7 @@ public:
return _is_exported_unqualified;
}
void set_unqual_exported() {
assert(Module_lock->owned_by_self(), "should have the Module_lock");
_is_exported_unqualified = true;
_is_exported_allUnnamed = false;
_qualified_exports = NULL;