[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openjdk-jigsaw-dev
Subject:    Fail to look for a resource bundle that is in jdk.boot module
From:       Mandy.Chung () Sun ! COM (Mandy Chung)
Date:       2010-01-23 22:10:15
Message-ID: 4B5B73C7.80908 () sun ! com
[Download RAW message or body]

I think I find the cause of the issue (when learning the jmod show option)

The context of jdk.javac module is:

> jdk-module-image/bin/jmod show jdk.javac
configuration roots = [jdk.javac at 7-ea]
  context +jdk.javac+jdk.langtools+jdk.logging [jdk.javac at 7-ea, jdk.logging at \
7-ea, jdk.langtools at 7-ea]

I guess it's considered as boot context only when it 
requires jdk.boot.  I will workaround it and see if 
it resolves the problem.

Mandy


Mandy Chung wrote:
> Hi Mark,
> 
> I have made some good progress in creating the jdk base
> image and also the entire jdk image.  All jdk modules
> are installed successfully on jigsaw on all platforms.
> Running org.openjdk.jigsaw.Hi works!
> 
> > jdk-module-image/bin/java -m jdk.base
> The JDK boot module is brought to you by the letter 'J' and the number 7.
> 
> > jre-base-image/bin/java -m jdk.base
> The JDK boot module is brought to you by the letter 'J' and the number 7.
> 
> I now run into two different issues. 
> In the module mode, I run into a missing resource exception where it 
> fails to find a resource bundle that exists.  
> sun.launcher.resources.launcher is a compiled class installed in the 
> jdk.boot module.
> 
> > ls 
> > jdk-module-image/lib/modules/jdk.boot/7-ea/classes/sun/launcher/resources/launcher.class \
> >  
> 
> > jdk-module-image/bin/java -m jdk.javac
> Exception in thread "main" java.lang.ExceptionInInitializerError
> at 
> sun.launcher.LauncherHelper.getLocalizedMessage(LauncherHelper.java:71)
> at 
> sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:211)
> Caused by: java.util.MissingResourceException: Can't find bundle for 
> base name sun.launcher.resources.launcher, locale en
> at 
> java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1539) 
> 
> at 
> java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1278)
> at java.util.ResourceBundle.getBundle(ResourceBundle.java:733)
> at 
> sun.launcher.LauncherHelper$ResourceBundleHolder.<clinit>(LauncherHelper.java:59) 
> 
> ... 2 more
> 
> Is there anything look suspicious to you? ResourceBundle uses
> its own RBClassLoader to find resources.  Is it considered
> as legacy mode?  Even it's legacy mode, it should be able to
> find it since it's in the jdk.boot module.
> 
> How does the module loader find a resource file different
> than the legacy class loader?  I just suspect this is class
> loader issue.
> 
> The module-info for jdk.javac module is:
> 
> > jdk.javac/module-info.java 
> module jdk.javac @ 7-ea {
> requires local public jdk.langtools @ 7-ea;
> requires local public jdk.logging @ 7-ea;
> permits jdk, jdk.tools;
> class org.openjdk.jigsaw.Hi;  // ## Testing
> }
> 
> In the legacy mode, it loads sun.launcher.LauncherHelper
> and finds the resource as the jdk.boot classes/resources
> are added in the bootclasspath.  But I got a NoClassDefFoundError 
> instead that the app classloader can't find com.sun.tools.javac.Main 
> from the jdk.javac module.  I know that the hotspot bootclasspath
> is just temporary workaround for the boot classes but not for all jdk 
> modules.  But looks like we need a solution
> soon.
> 
> > jdk-module-image/bin/javac -version
> 
> Error: Could not find main class com.sun.tools.javac.Main
> Exception in thread "main" java.lang.NoClassDefFoundError: 
> com.sun.tools.javac.Main
> at 
> sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:213)
> Caused by: java.lang.ClassNotFoundException: com.sun.tools.javac.Main
> at java.net.URLClassLoader$1.run(URLClassLoader.java:299)
> at java.net.URLClassLoader$1.run(URLClassLoader.java:288)
> at java.security.AccessController.doPrivileged(Native Method)
> at java.net.URLClassLoader.findClass(URLClassLoader.java:287)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:422)
> at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:325)
> at java.lang.ClassLoader.loadClass(ClassLoader.java:355)
> at 
> sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:209)
> 
> > ls 
> > jdk-module-image/lib/modules/jdk.javac/7-ea/classes/com/sun/tools/javac/Main.class \
> >  
> 
> I'll continue to dig into this further.  Any thoughts
> or hints to diagnose these issues would be appreciated.
> 
> Thanks
> Mandy
> 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic