[modules-dev] re-export failed 'Imported module in error state'
Benedikt Hauptmann
mail at benedikthauptmann.de
Thu Apr 17 05:01:21 PDT 2008
Hi Everyone,
I tried to test the following scenario with source-release 09_apr_2008:
Super package 'module_API' contains a set of interfaces describing an
custom API.
Both 'module_impl1' and 'module_impl2' containing implementations of the
interfaces declared in 'module_API'.
package module_impl1;
import java.lang.reflect.Superpackage.*;
import java.module.annotation.*;
@Version("1.0")
class super_package {
exports module_impl1$Factory, module_API$IConnection,
module_API$IResult;
uses java$se, module_API;
}
As you can see, module_impl1 also re-exports module_API$IConnection and
module_API$IResult!!!!!!! (ref: JSR-277, 02.10.06, Page 16)
'myProject' is using 'module_impl1':
package myProject;
import java.lang.reflect.Superpackage.*;
import java.module.annotation.*;
@MainClass("myProject.Main")
@Version("1.0")
class super_package {
exports myProject$Main;
uses java$se, module_impl1;
}
Compiling and packaging works fine.
But starting 'myProject' crashes with the following exception:
importdep:
[ImportDependency[imported-module=java.se,version-constraint=0+],
ImportDependency[imported-module=module_impl1,version-constraint=0+]]
imported content: ModuleDefinition java.se v1.7 (bootstrap
repository)
imported content: ModuleDefinition module_impl1 v1.0
(application repository)
importdep:
[ImportDependency[imported-module=java.se,version-constraint=0+],
ImportDependency[imported-module=module_API,version-constraint=0+]]
imported content: ModuleDefinition java.se v1.7 (bootstrap
repository)
imported content: ModuleDefinition module_API v1.0 (application
repository)
importdep:
[ImportDependency[imported-module=java.se,version-constraint=0+]]
imported content: ModuleDefinition java.se v1.7 (bootstrap
repository)
Validation succeeded: ModuleDefinition module_API v1.0
(application repository)
XXX initialization failed:
java.module.ModuleInitializationException: Validation: module
module_impl1 v1.0 and imported module module_API v1.0 both define the
packages [module_API]
at sun.module.core.ModuleImpl.fail(ModuleImpl.java:246)
at
sun.module.core.ModuleImpl.shallowValidate(ModuleImpl.java:662)
at
sun.module.core.ModuleImpl.validate(ModuleImpl.java:542)
at
sun.module.core.ModuleImpl.nextStep(ModuleImpl.java:321)
at
sun.module.core.ModuleImpl.nextStep(ModuleImpl.java:316)
at
sun.module.core.ModuleImpl.initStep(ModuleImpl.java:281)
at
sun.module.core.ModuleSystemImpl$Initializer.initializeModules(ModuleSys
temImpl.java:368)
at
sun.module.core.ModuleSystemImpl$Initializer.serviceQueues(ModuleSystemI
mpl.java:337)
at
sun.module.core.ModuleSystemImpl$Initializer.run(ModuleSystemImpl.java:2
95)
at java.lang.Thread.run(Thread.java:674)
XXX initialization failed:Error: Imported module in error state:
Module module_impl1 v1.0 (application repository)
java.module.ModuleInitializationException: Imported module in
error state: Module module_impl1 v1.0 (application repository)
at sun.module.core.ModuleImpl.fail(ModuleImpl.java:246)
at
sun.module.core.ModuleImpl.checkDependencies(ModuleImpl.java:607)
at
sun.module.core.ModuleImpl.checkDependencies(ModuleImpl.java:620)
Press any key to continue . . .
Is this a bug in openJDK, or is re-exporting not yet implemented?
Thanks,
Benedikt
mail at benedikthauptmann.de
www.benedikthauptmann.de
More information about the modules-dev
mailing list