On 1/16/2014 7:39 AM, Paul Sandoz wrote:
On Jan 16, 2014, at 2:27 AM, Mandy Chung <mandy.ch...@oracle.com> wrote:

There is an inconsistency in searching classes vs resources if bootclasspath 
contains an empty path.  Empty path on bootclasspath is skipped by the 
bootstrap class loader when searching classes while it defaults to current 
working directory when searching resources as the application class loader.
Just curious, where is the code that skips empty paths in the bootclasspath 
when loading classes? Is that in the VM?

Yes it's in the VM which implements the class loading. I don't know the history and I guess splitting the implementation of class loading vs resource lookup in the VM and jdk could be due to no actual ClassLoader implementation (null instead).

  This fixes sun.misc.Launcher to skip empty path when constructing the paths 
from bootclasspath for resource lookup.

Webrev at:
http://cr.openjdk.java.net/~mchung/jdk9/webrevs/6760902/webrev.00/

Perhaps it is better to merge GetResource2.sh into GetResource.sh.

I was considering if merging them would be better and separating it makes it clear for what it tests for. On the other hand, I don't like duplication and I probably can merge them and clean

I am so tempted to change this too :-)

  423                 if (pos - lastPos > 0) {

Me too and time to do it.  Will post another webrev.

Mandy

Paul.


There is some incompatibility risk that may impact existing code depending on 
this behavior to search resources from the current working directory if empty 
path (rather than explicit) is set.  I think most application using 
bootclasspath is to add their paths to load their classes and likely expect the 
resources are looked in the consistent way (i.e. skips the empty path).  So I 
expect the incompatibility risk is low.

thanks
Mandy

Reply via email to