On Thu, 16 Apr 2026 14:20:20 GMT, Ramesh Bhagavatam Gangadhar 
<[email protected]> wrote:

>> Analysis on Issue
>> ======================
>> 
>> There are two calls made in KeytoolOpensslInteropTest.java in Line 83 and 
>> Line 84
>> 
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java#L83-L84
>> 
>>        a)      String opensslPath = OpensslArtifactFetcher.getOpensslPath();
>>        b)     generateInitialKeystores(opensslPath);
>> 
>> 
>> 1. Call made in 
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java#L83
>>   to get openssl path which returns "openssl"
>> 
>>              Execution Flow:
>>              ============
>>              
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java#L83
>>    calls 
>> https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/security/OpensslArtifactFetcher.java#L62
>>  calls 
>> https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/security/OpensslArtifactFetcher.java#L98
>>  and finally returns "openssl" from 
>> https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/security/OpensslArtifactFetcher.java#L100
>> 
>> 
>> 
>> 2.   return value of  "openssl" is passed as argument to 
>> generateInitialKeystores("openssl") and same value is navigated here as well
>>       
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java#L110
>>  and call made to  
>>  OpensslArtifactFetcher.getProviderPath("openssl") 
>>  
>> https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/security/OpensslArtifactFetcher.java#L133
>>  ==> this is the statement where we are seeing error
>> 
>>  Path openSslRootPath = Path.of("openssl").getParent().getParent();
>> 
>> =====> Path.of("openssl").getParent() = null
>> 
>> 
>> 
>> Solution
>> ==========
>> 
>> 1. We can remove complete System Installed Library dependency and rely on 
>> artifacts installed through artifactory.
>> 2. Instead of returning "openssl" from 
>> https://github.com/openjdk/jdk/blob/master/test/lib/jdk/test/lib/security/OpensslArtifactFetcher.java#L100
>>  return the absolute path of openssl.
>> 
>> 
>> I have opted for Solution 2. and changed the code and i encountered one more 
>> situation where ProviderPath doesn't contain "ossl-modules" folder at all.
>> 
>> e.g.
>> 
>> if 
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslInteropTest.java#L83
>>  returns absolute path "/usr/bin/openssl" then call made to get Provider 
>> Path here: 
>> https://github.com/openjdk/jdk/blob/master/test/jdk/sun/security/pkcs12/KeytoolOpensslIntero...
>
> Ramesh Bhagavatam Gangadhar has updated the pull request incrementally with 
> one additional commit since the last revision:
> 
>   added handling of which in windows

@myankelev pls check it once, i have addressed your comments.

-------------

PR Comment: https://git.openjdk.org/jdk/pull/30561#issuecomment-4466092702

Reply via email to