Hi Michael, Moving over to core-libs-dev.
The discussion in 8185540 is a bit confusing to me. David On 26/09/2017 8:45 PM, Michael Rasmussen wrote:
Hi We have discovered an issue with using -Xbootclasspath/a on Java 9. if you add -Xbootclasspath/a as JVM argument, the current working directory also gets added to boot class path! take the following Test.java class: import java.util.Collections; public class Test { public static void main(String[] args) throws Throwable { System.out.println(Collections.list( ClassLoader.getPlatformClassLoader().getResources("foo.txt"))); } } $ java -fullversion openjdk full version "9+181" $ javac Test.java $ pwd /home/michael/test $ touch foo.txt $ touch /tmp/foo.txt $ java Test [] $ java -Xbootclasspath/a:/tmp Test [file:/home/michael/test/foo.txt, file:/tmp/foo.txt] As the above shows, adding the -Xbootclasspath/a, also added the current working directory to the boot class path. Using a new ClassLoader(null){} instead of the platform class loader gives the same result. A bit of digging shows that "jdk.boot.class.path.append" system property contains a leading path-separator char, like ":/tmp" (";C:/tmp" on Win), meaning in jdk.internal.loader.ClassLoaders.<clinit>, when that string is converted to a classpath, the empty first part gets parsed as cwd. I assume this is not the intended behavior of -Xbootclasspath/a, as the same thing doesn't happen on Java 8, also it's not documented as such. I found some related issues in Jira, such as JDK-8185540, that seems to remedy this, but it's still weird that the JVM adds the empty path element to begin with. Kind regards, Michael Rasmussen