On 04/09/2020 14:01, Daniel D. Daugherty wrote:
On 4/9/20 4:42 PM, Alex Menkov wrote:
Hi all,
Please review the fix for
https://bugs.openjdk.java.net/browse/JDK-8242282
webrev:
http://cr.openjdk.java.net/~amenkov/jdk15/jpsTest_ClsNotFound/webrev/
test/jdk/sun/tools/jps/LingeredAppForJps.java
L89: manifestClasspath += " " + new File(path
).toURI();
nit - please delete extra space before ')'.
Done locally.
old L91: break;
So the old version only added the first existing file found in the
path to the jarArgs. The new version is added all existing files.
Maybe I misread the bug report, but I didn't think you wanted to
do that.
The idea of the code is to add to jar only files from test class
directory and don't add files from any other classpath dirs.
With the fix all other classpath dirs are added to manifest "Class-Path".
Also, can you provide an example of the old manifest file
versus the
new manifest file after this change?
in my env
old manifest.mf (generated):
===================
Main-Class: LingeredAppForJps
===================
new one:
===================
Main-Class: LingeredAppForJps
Class-Path:
file:/D:/ade/jvm/hs_4/build/windows-x64-debug/test-support/jtreg_open_test_jdk_sun_tools_jps/classes/0/test/lib/
===================
old manifest from generated .jar:
===================
Manifest-Version: 1.0
Main-Class: LingeredAppForJps
Created-By: 15-internal (Oracle Corporation)
===================
new one:
===================
Manifest-Version: 1.0
Main-Class: LingeredAppForJps
Class-Path: file:/D:/ade/jvm/hs_4/build/windows-x64-debug/test-support/
jtreg_open_test_jdk_sun_tools_jps/classes/0/test/lib/
Created-By: 15-internal (Oracle Corporation)
===================
--alex
test/jdk/sun/tools/jps/TestJps.java
No comments.
The test creates jar with test classes and run it with "java -jar
<jar_file>".
The problem is single "@run Test" tag is executed by JTreg
inconsistently - sometimes library classes are compiled to test
directory, sometimes - to library directory.
The fix explicitly forces required library classes compilation (so
library files are compiled to library dir) and add classpath
directories to jar manifest.
This description doesn't mention jar'ing up additional files so you can see
my confusion (I hope).
Dan
--alex