RFR: JDK-8242282: Test sun/tools/jps/TestJps.java fails after JDK-8237572

Alex Menkov alexey.menkov at oracle.com
Thu Apr 9 21:15:48 UTC 2020



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
> 


More information about the serviceability-dev mailing list