[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