RFR: 8282219: jdk/java/lang/ProcessBuilder/Basic.java fails on AIX [v3]

Tyler Steele duke at openjdk.java.net
Wed Feb 23 16:33:47 UTC 2022


On Wed, 23 Feb 2022 09:46:28 GMT, Ichiroh Takiguchi <itakiguchi at openjdk.org> wrote:

>> Run jtreg:jdk/java/lang/ProcessBuilder/Basic.java on AIX.
>> The test was failed by:
>>   Incorrect handling of envstrings containing NULs
>> 
>> According to my investigation, this issue was happened after following change was applied.
>> JDK-8272600: (test) Use native "sleep" in Basic.java
>> 
>> test.nativepath value was added into AIX's LIBPATH during running this testcase.
>> On AIX, test.nativepath value should be removed from LIBPATH value before comparing the values.
>
> Ichiroh Takiguchi has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Change LIBPATH usage

test/jdk/java/lang/ProcessBuilder/Basic.java line 85:

> 83:         if (AIX.is()) {
> 84:             String nativepath = System.getProperty("test.nativepath");
> 85:             if (nativepath != null) {

I think this null check should be modified. There are two issues at play.

- If nativepath is null it will be caught by the filter below. So it is safe to pass it past this point in either case (null or non-null).
- If libpathString is null there will be a NullPointerException when split gets called on it below.

I believe there are at least two reasonable choices here. The first is to change nativepath -> libpathString in this null check. This option guards against calling String.split on a null value. Alternatively, you could trust that since this code doesn't get called unless AIX.is() returns true, that it's safe to remove this check altogether. This second option is only viable if we know LIBPATH is always set on AIX.

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

PR: https://git.openjdk.java.net/jdk/pull/7574


More information about the core-libs-dev mailing list