On 4/9/20 5:15 PM, Alex Menkov wrote:


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)
===================


Looks good. Thumbs up.

Dan



--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


Reply via email to